WCF和IIS中的神秘问题?

你好
我写了WCF duplex service 。 此服务在Visual Studio中运行良好,但是当我发布此服务并将其放在IIS上时, Service don't answer to any Client
所有客户端都正确连接到此服务。 他们也称服务井,没有例外。
这些服务(IIS服务和VS托管服务)之间只有不同之处。 例如 :
* IIS服务地址是http://localhost/SmsService/SmsService.svc或更好的说是虚拟路径地址。
* VS托管服务地址为http:// localhost:1408 / SmsSrevice.svc 。 绝对I changed Server address for client's.

这里服务/应用程序配置:
VS托管服务

                    

IIS托管服务

                     

客户端配置

                     

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

那有什么问题?

编辑1

首先,谢谢大家

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

但是当我发布那个在VS中正确工作的服务时,进入不能正常工作的IIS(即使在我自己的计算机中)。 这意味着Client can create service object and connect to that IIS Hosted Service ,但是当客户端的呼叫服务没有事件(计算,回调,数据库操作)和Service also don't call Client's

我不明白,如果我的代码的任何步骤有错误,那必须在VS中运行时发生。 所以必须是我错过的security config, client side config or something else

它可能是阻止端口1408的防火墙

首先,Duplex很糟糕(非常糟糕)但是我不会因为你决定使用它而烦恼。

我能看到的主要问题是安全性 。 我相信Windows eventlog会告诉你这个故事 – 只需检查安全日志中的错误。 默认情况下,不允许IIS应用程序池与其他计算机通信。 你没有提到你已经专门做了任何事情,所以我认为它是默认的。 只需将应用程序池的标识更改为管理员用户(我认为不建议用于生产),我认为您将看到问题消失 – 我只是猜测。


OFF-TOPIC:为什么DUPLEX很糟糕

  • 在服务器尝试建立与客户端的连接时,它会大大降低服务的可伸缩性。 实际上,如果客户端连接不良或者……服务器的连接可能会挂在那里直到它在这段时间内超时,那么专用于该呼叫的所有资源都将被锁定,从而浪费掉。
  • 客户端计算机的规范及其连接可能会影响服务的性能。
  • 对于服务器,通常确保它是可访问的。 如果客户端位于防火墙或NAT后面,则无法联系服务器。 [ 这可能是你的问题 ]。
  • 因此,如果您打开服务器的客户端,这意味着客户端也可以暴露给整个世界。 服务器的安全考虑通常是好的,但客户端被忽略,所以现在需要考虑很多事情。
  • 还有更多……但这应该足够了。

你可以在浏览器中打开http:// localhost:1408 / SmsSrevice.svc吗? 如果没有,请检查您的IIS配置。 http://msdn.microsoft.com/en-us/library/ms733766.aspx