HTTP错误500.0 - 安全WCF服务中的内部服务器错误

时间:2012-11-29 05:33:31

标签: asp.net

在IIS中托管WCF服务后出现以下错误。

  

HTTP错误500.0 - 内部服务器错误。该页无法显示   因为发生了内部服务器错误。

     

模块IsapiModule
  通知ExecuteRequestHandler
  处理程序svc-ISAPI-4.0_32bit
  错误代码0x00000000

它是具有安全证书WCF服务的HTTPS。 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

它可能由许多不同的事物引起。您应该尝试以下解决方案:

1第一种方式

  1. 右键单击您网站所在的文件夹:“C:\ Users \ NAME \ SiteName”,然后选择“属性”。
  2. 选择“安全”选项卡,然后单击“编辑”。
  3. 添加..并输入“IIS_IUSRS”。
  4. 2秒

    默认情况下,只能使用HTTP POST调用WCF Service OperationContracts。在Titanium HTTPClient上调用open()时,是否为HTTP方法参数指定了GET或POST?

    其次,由于您的服务绑定使用SOAP 1.1,因此您需要在请求中传递SOAPAction标头,以便WCF可以将消息路由到GetData方法。如果未在服务的OperationContract属性中指定Action参数,则Action应为名称空间和服务合同名称前面的方法名称(如果您使用的是默认WCF应用程序,则可能为http://tempuri.org/IService1/GetData)。您还需要指定内容类型。因此,在调用send:

    之前,您需要像这样设置xhr
      

    xhr.setRequestHeader('Content-Type','text / xml; charset = utf-16');   xhr.setRequestHeader( '的SOAPAction',   ' “http://tempuri.org/IService1/GetData”'); xhr.send(一个或多个);还有,你可以   显式指定WCF服务操作的操作:

         

    [OperationContract(Action =“MyAction”)] string GetData(){        // ...剪断...}

         

    xhr.setRequestHeader('SOAPAction','“MyAction”');

    最后,您可以通过使用[WebGet]属性修改方法,通过HTTP GET调用服务操作。这允许以REST方式调用操作:http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webgetattribute.aspx