gpt4 book ai didi

c# - WCF 和 IIS 中的神秘问题?

转载 作者:太空狗 更新时间:2023-10-30 01:26:44 24 4
gpt4 key购买 nike

你好
我编写了 WCF 双工服务。此服务在 Visual Studio 中运行良好,但当我发布此服务并将其放在 IIS 上时,服务不响应任何客户端
所有客户端都正确连接到此服务。他们也调用 Service Well 并且没有发生异常。
这些服务(IIS 服务和 VS 托管服务)之间的唯一区别是它们的地址。例如:
* IIS服务地址为http://localhost/SmsService/SmsService.svc或者更好的说法是虚拟路径地址。
* VS托管服务地址为http://localhost:1408/SmsSrevice.svc .绝对 我为客户端更改了服务器地址。

此处服务/应用程序配置:
VS 托管服务

<system.serviceModel>
<services>
<service name="SmsService.Business.SmsService"
behaviorConfiguration="ServiceBehavior">
<endpoint address="http://localhost:1408/SmsService.svc"
binding="wsDualHttpBinding"
contract="SmsService.Business.ISmsService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>

IIS 托管服务

    <system.serviceModel>
<services>
<service name="SmsService.Business.SmsService"
behaviorConfiguration="ServiceBehavior">
<endpoint address=""
binding="wsDualHttpBinding"
contract="SmsService.Business.ISmsService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>

客户端配置

  <system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_SMSService"
closeTimeout="00:10:00"
clientBaseAddress="http://MyMachinName:10300/SmsClientService"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
bypassProxyOnLocal="false"
transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288"
maxReceivedMessageSize="65536"
messageEncoding="Text"
textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxDepth="32"
maxStringContentLength="8192"
maxArrayLength="16384"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" />
<security mode="Message">
<message clientCredentialType="Windows"
negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://SERVER1/SmsService/SmsService.svc"
binding="wsDualHttpBinding"
bindingConfiguration="WSDualHttpBinding_SMSService"
contract="ServiceReference.SMSService"
name="WSDualHttpBinding_SMSService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>

即使我在服务方法的第一个中写了事件日志,但那是行不通的!

so What is Problem?

编辑 1

先谢谢大家

其次我认为,我没有清楚地解释我的问题。 “此服务在 Visual Studio 中工作正常”指的是在 VS 中我可以通过客户端与服务器通信(在 VS 中与服务相同的解决方案)。客户端可以调用服务,服务也可以调用客户端,工作正常(任何计算、回调、数据库操作等)

但是,当我将自己在 VS 中正常工作的服务发布到无法正常工作的 IIS(即使在我自己的计算机中)时。这意味着 客户端可以创建服务对象并连接到 IIS 托管服务,但是当客户端调用服务时没有事件(计算、回调、数据库操作)并且 服务也不会调用客户端的

我不明白,如果我的代码的任何步骤有必须在 VS 运行时发生的错误。所以一定是我错过了一些东西,比如安全配置、客户端配置或其他东西

最佳答案

可能是防火墙阻塞了1408端口

关于c# - WCF 和 IIS 中的神秘问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4265033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com