【标题】常见错误,原因及解决方法ASP.
NET常见错误原因及解决方法常见错误【错误提示】异常详细信息:失败:异常详细信息System.Net.WebException:请求因HTTP状态401失败:Unauthorized..源错误:行35:[System.Web.Services.Protocols.S
oapDocumentMethodAttribute("http://tempuri.org/HelloWorld",RequestNamespace="http://tempuri.org/",ResponseNamespace="http://tempuri.org/",Use=System.Web.Services.Description.SoapBindingUse.Literal,ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]行行行行36:37:38:39:publicstringHelloWorld(){object[]results=this.Invoke("HelloWorld",newobject[0]);return((string)(results[0]));}
【原因分析】1,用的是windows2003,.netframework1.1,.net20032,应该有权限访问,因为原来用
程序是可以的,现在用IE去访问还是可以的,但程序不行;3,iis没有什么异常,从iis里面直接浏览调用
web方法没有
问题;4,认证方式没有改变一直用的都是windows,改成none也不行;5,一开始就安装了WSE1.1,是可以的,后来升级到WSE2.0,就不行了,然后卸载了WSE2.0,装上WSE2.0SP1还是不行,后来又卸载掉WSE2.0SP1还是不行,再重装WSE2.0SP1还是不行,不得其解,现在试试卸载掉WSE2.0SP1重新用WSE1.1看行不行,请各位多多帮忙啊.
什么是WSE
WSE概念
美国当地时间2002年12月16日,微软发表了构筑Web服务应用程序所需的附加套件"WebServicesEnhancements1.0(WSE)".该套件可以使Web服务应用程序支持WS-Security,WS-Routing,WS-Attachments等规格.
WSE能够与VisualStudio.NET和.NETFramework配合使用."开发商只需在Web服务应用程序中追加数行代码,就可以使其支持业界的最新技术"(微软).顺便提一下,微软于2002年8月进行了WSE的技术展示,之后进行了测试,此次则在Web上予以发布(RTW:ReleasetoWeb).
WS-Security是IBM,微软,VeriSign联手打造的Web服务安全标准.三公司向XML相关标准化团体OASIS(结构化信息标准促进组织)提交了该标准,并在OASIS内部发起成立了技术委员会.
WS-Routing是指此前被称为SOAP-RP的,SOAP的扩展规格,规定了SOAP信息头中的地址记述方法.WS-Attachments是指记述了向SOAP信息中添加二进制数据的方法的规格,是由微软与IBM于2002年7月共同向标准团体IETF(因特网工程任务组)提出的.
WSE的主要特点如下:
安全性:支援涉及整个平台的安全的XMLWeb服务的构筑.具有用于对SOAP信息进行电子签名和加密的功能.支持WS-Security规格;
路由功能:使用WS-Routing规格,对SOAP信息进行中继,并负责XMLWeb服务的路由;
添加功能:可以向在XMLWeb服务之间进行交换的SOAP信息中添加二进制数据.该功能基于WS-Attachments标准;
扩展架构:通过对处理SOAP信息的
系统进行扩展,并与适当的安全基础相配合,就能够定制加密和签名功能.
【解决方法】在调用WebService方法前,加上一句System.Net.CredentialCache.DefaultCredentials即:myWS.Credential=System.Net.CredentialCache.DefaultCredentials;myWS.wsMethod();【错误提示】未将对象引用设置到对象的实例.说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.NullReferenceException:未将对象引用设置到对象的实例.源错误:
行行行行行
39:40:41:42:43:
QID=Request.QueryString["QID"];title=Server.UrlDecode(Request.QueryString["title"]).ToString();strOperation="select*fromAD_QAnswerwhereQID="+QID;strTableName="Answer";行:41