web服务无法在IIS上访问,在代理之后
本文关键字:访问 代理 之后 IIS 服务 web | 更新日期: 2023-09-27 18:05:17
花了两天时间看了很多问题,但什么也没发现,或者可能是我做错了什么。基本上,我是从类库内部访问AXIS web服务,而类库由web应用程序和windows服务使用。服务引用被添加到类库中,web应用程序和windows服务都可以访问该服务,并在visual studio中轻松运行。然而,当我发布应用程序,并安装windows服务,应用程序抛出以下错误。
误差
"在https://bulkmsg.xx.wxyz.com/services/MessagingServices_1上没有侦听端点可以接受此消息。这通常是由不正确的地址或SOAP操作引起的。"
网络。配置(代理设置)
<defaultProxy useDefaultCredentials="true">
<proxy usesystemdefault="False" proxyaddress="http://10.51.10.51:8080" bypassonlocal="True" />
</defaultProxy>
我将设置从false切换到true,但我仍然得到相同的错误。参见下面web.config的servicmodel部分。
网络。配置(服务设置)
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="MessagingServices_1SoapBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
<binding name="MessagingServices_1SoapBinding1" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://bulkmsg.xx.wxyz.com/services/MessagingServices_1"
binding="basicHttpBinding" bindingConfiguration="MessagingServices_1SoapBinding"
contract="ZainSmsService.MessagingServices_1" name="MessagingServices_1" />
</client>
</system.serviceModel>
web应用程序和windows服务都安装在win2008服务器上,该服务器从代理后面连接到internet。
既然,应用程序能够在visual studio内访问web服务,但不能在IIS中访问,它看起来像是IIS的权限或一些设置问题,我可能错了,但这就是我发现的。我不确定我应该改变什么,在哪里。
UPDATE: 更多信息
我做了一些挖掘,并设法找到了这个
技术信息(供技术支持人员使用)
错误码:502代理错误。Forefront TMG拒绝指定的统一资源定位符(URL)。(12202)IP地址:10.51.10.51
日期:7/30/2015 6:54:58 AM [GMT]
服务器:MUPROXY.MOXXX.GOV.XXX
来源:代理
变通
我找到了一个解决方案,从服务引用切换到web引用,并使用下面的代码来传递代理详细信息。
WebProxy _proxy = new WebProxy(_config.GetAppKey("PROXY"), Boolean.Parse(_config.GetAppKey("BYPASSONLOCAL")));
_proxy.Credentials = new NetworkCredential
{
UserName = _config.GetAppKey("PROXYUSER"),
Password = _config.GetAppKey("PROXYPWD")
};
XXXXSmsService.MessagingServices_1Service _xxxxProxy = new XXXXSmsService.MessagingServices_1Service();
_xxxProxy = _proxy;
Web Referecen加上上面的代码,工作起来像一个魅力。
似乎你的web服务在启动时崩溃,因为一个NullReferenceException(根据提供的事件日志)。因此,无法访问web服务,因此您会得到此"[…]无止境地倾听……错误信息。
你能试着找出,究竟在哪里这个NullReferenceException发生?
同样,如果可能的话,你可以尝试直接在web服务器上访问web服务,只需在web浏览器中输入链接。如果您直接在服务器上尝试,可以获得更多信息。