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