IIS应用程序初始化模块向localhost发送请求

时间:2012-08-10 14:10:03

标签: wcf iis msmq

我有一个使用MSMQ的WCF服务,托管在IIS中。该服务不会启动并从队列中读取消息,直到服务器的SVC页面的URL已在浏览器中命中,这在部署和应用程序池回收后出现问题。为了解决这个问题,我安装了IIS Application Initialization module,它将向Web.config中指定的页面发送虚假请求,如下所示:

<system.webServer>
  <applicationInitialization remapManagedRequestsTo="Startup.htm" skipManagedModules="true" >
    <add initializationPage="/MyService.svc" />
  </applicationInitialization>
</system.webServer>

我遇到的问题是,当我的网站绑定到另一个域时,它正在击中localhost,所以我看到了这个错误:

  

WebHost无法处理请求。发件人信息:   System.ServiceModel.Activation.HostedHttpRequestAsyncResult / 42715336   异常:System.ServiceModel.ServiceActivationException:无协议   绑定匹配给定地址'http://localhost/MyService.svc'。   协议绑定在IIS或WAS中的站点级别配置   组态。 ---&GT; System.InvalidOperationException:没有协议   绑定匹配给定地址'http://localhost/MyService.svc'。   协议绑定在IIS或WAS中的站点级别配置   配置。

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我已经通过连接到EMS服务器的SVN服务完成了这项工作。如果它没有创建一个ASPX页面,它可以执行像followign那样甚至可以运用你的服务。

<%@ Page aspcompat=true Language="VBScript"  %>


Dim objSvrHTTP
Dim PostData
Dim WebName
Dim SoapAction
    SoapAction = "Your Soap Action"

WebName = Request.URL.Host & ":" & Request.URL.Port


 objSvrHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")
 PostData = "Soap Post XML (Recoreded probably)"

objSvrHTTP.open("POST", "http://" & WebName & "/path/SVCFile.svc", false)
objSvrHTTP.setRequestHeader("Content-Type", "text/xml" )
' set SOAPAction as appropriate for the operation '
 objSvrHTTP.setRequestHeader("SOAPAction", SoapAction )

objSvrHTTP.Send(cstr(PostData))

dim serviceResponse
dim ExpectedResponse 
    ExpectedResponse = "asdf"
serviceResponse = objSvrHTTP.responseText 

if (serviceResponse <> ExpectedResponse) then
    Response.Write("The Service Didn't return false and should have.  it returned: " )
    Response.Write(serviceResponse)
else
    Response.Write("OK")
end if