关于IIS错误的问题。。。

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:49:55
昨天IIS还好好的,今天再启动就出现这个错误。

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS1501: “Update”方法没有采用“4”个参数的重载

源错误:

行 1713: [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)]
行 1714: public virtual int Update(int picTypeId, string picTypeName, int displayOrder) {
行 1715: return this.Update(picTypeId, picTypeName, displayOrder, picTypeId);
行 1716: }
行 1717: }

源文件: d:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\97169047\4ab38dee\App_Code.m0stugv7.6.cs 行: 1715

哪位大哥,帮一下忙,肯定重谢。
this.Update(picTypeId, picTypeName, displayOrder, picTypeId);这个地方好像确实多了一个,不过我修改了之后,还是报错
而且是编译后的文件(就是在安装.NET的那个目录里编译后生成了很

这个不是IIS的问题,是你改了代码,函数入口参数已经不同了。
问题出在:
this.Update(picTypeId, picTypeName, displayOrder, picTypeId);
这一行。
这个Update函数调用有4个参数,但是实际上你这个函数的定义中没有任何一个overload函数有4个入口参数,所以.net无法找到这个调用实际指向的函数是哪一个。
你看看你的代码,肯定是你改过代码,自己忘记相关的修改了

看你的页面文件所引用的类定义在那里,就改哪个文件,编译、部署之后,cs文件不会出现在网站里,已经都编译成dll了,此时aspx文件里面page标签里会指定与这个页面关联的类定义在哪个assembly里面。如果你不想重新编译,则必须把新的aspx和cs都部copy到iis上,覆盖掉已编译的aspx,否则页面还是会从原来的dll中访问程序代码。

可能是你调用update这个函数时,负值了4个参数,而你定义这个函数的参数只有三个/。

只要重新生成一下站点就会发现你的代码到底哪儿出错了,有的时候因为缓存的原因可能会出现你所说的这种假象(昨天还可以,今天就不行了,而你感觉没有更改过任何代码)。

//虚函数提供了3个参数的方法
public virtual int Update(int picTypeId, string picTypeName, int displayOrder)
{
//调用虚函数,但是传输了4个参数
return this.Update(picTypeId, picTypeName, displayOrder, picTypeId);
}
问题就出在你写return的时候多写了一个参数,如果你希望写4个参数应该提供一个处理4个参数的函数,否则就删掉一个没用的参数。

走人!