Liny_@NotePad

沉迷ACG中

访问 IIS 元数据库失败

继续上一回,在改成2.0后出现此问题:

 访问 IIS 元数据库失败。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败。

用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如 IIS://servername/W3SVC)的读访问权。有关如何修改元数据库权限的信息,请参见 http://support.microsoft.com/?kbid=267904。

发现好像没有装2.0,于是打开.NET 2.0的控制台,运行aspnet_regiis.exe -i让它自己装,装完了重启下IIS就正常了。 = =

配置错误:无法识别的配置节“connectionStrings”

发布网站时得到如下提示:

配置错误

说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误信息: 无法识别的配置节“connectionStrings”

检查一下,原来connectionStrings是.NET 2.0才有的,我IIS配的1.1……改成2.0即可。

从客户端检测到有潜在危险的Request.Form值

嗯,说明输入可能包括不和谐的内容 XD。

在用富文本框的时候遇到这个提示,囧,对富文本框的页面<%Page%>里用上ValidateRequest属性为false即可。

其他地方为了安全起见还是默认吧。

OnClick时不执行Page_Load。。

写CRUD,不知为何插入删除都可以,就是更新不行,

后面写测试工程测DAL,明明OK的说。

再调网页,发现Page_Load在OnClick时被最先触发,因此在OnClick事件里面用到的这些页面控件都被重新加载,更改值无效果。

百度之,原来加上对IsPostBack的判断就可以了。

未能找到存储过程'dbo.aspnet_CheckSchemaVersion'

好像是ASP.NET没有装SQL Server?不懂,总之:

执行C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe

一路next,配置下数据库(我用的本地.),完成就可以了 - -。

Cannot send session cookie..

同事玩php,这里的session必须在session_start()后才能使用。

然后调试的时候服务器提示说:
Warning: Cannot send session cookie - headers already sent
Warning: Cannot send session cache limiter - headers already sent

百度之,好像是session_start()前不能有其他输出,

于是将它放在第一行,结果依然是这个问题,当下囧。

继续百度,得解:我们使用的是UTF-8编码,默认带有Unicode签名(BOM),这厮偷偷藏在最前面,我们看不到 - -

如果有UltraEdit就可以手工修改二进制编码。。可是没有,

我们用DW打开,在页面属性->标题/编码->包括Unicode签名去掉,重新保存,再次运行,成功 = =。

hibernate.hbm2ddl.auto

嗯,在程序启动时自动创建数据表结构,

下面贴一下可选值意义:

  • create:
    每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
  • create-drop
    每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
  • update
    最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。
  • validate
    每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

OJClient的一些想法……

之前写过MFC的超简单版……直接填ID、密码、题号取代码的……而且也限制了只能操作FNOJ……

Java版的当时只进行了10%……支持多个OJ……登录后可以从列表中选择代码ID来看的……估计是没什么时间搞了……

于是贴贴思路做个纪念吧……