0

我有一个WCF Webservice项目,内置在我的本地机器中,当使用测试客户端托管并触发时,它以JSON格式返回来自远程数据库的值。

例如,如果您键入URLwith localhost,那么您会以以下格式返回结果:

{"Id":3,"Value1":"67.5687","Value2":"126.7125"}

我想将此项目托管在具有公共 URL 的远程服务器上,该 URL 应该从任何网络返回上述结果。我对此有3个问题:

** 我应该对当前的 WCF 项目进行哪些修改以将其托管在远程服务器上。

** 鉴于各种类型的托管,例如:

1) windows process activation services (WAS)
2) IIS
3) Self hosting
4) Hosting in a Windows service,

哪种类型的主机最适合托管在远程服务器上。

** 我应该在我的 App.Config 文件中进行哪些更改(包括将我的端点地址从 localhost 更改为 IP 地址)以使服务正常工作。

谢谢。

4

1 回答 1

1

1)您不应该仅仅因为您想在另一台机器上托管代码而对您的项目进行任何更改。我觉得这是一个奇怪的问题。

2) 鉴于您选择 JSON 作为数据格式并选择浏览器作为测试客户端,我猜您希望使用简单的 GET 请求通过 HTTP 使其可用。在 Microsoft 堆栈中,IIS 是 Web 服务器,是此方案的自然选择。

3) 很难回答。我不知道你的 app.config 今天有什么。我不知道您是否要进行身份验证,如果要如何进行。而且我不想知道!也就是说,在我看来,如果一切都应该像在您的开发盒上那样运行,那么绑定已经没问题了。我不记得 WCF 服务是否需要知道它本身所在的端点(很难理解为什么它需要知道这一点,真的);我会认为在主机上进行这样的配置更自然,例如 IIS。客户端当然应该使用不同的端点指向您托管服务的任何位置。(您可以在 app.config 中放置许多端点,让用户选择一个,顺便说一句。)

我认为我们大多数人时不时会违背以下建议,但这是我能给出的最好建议:读一本书。尽可能多地了解您正在使用的东西,在本例中为 WCF。稍后您会找回时间,并且您的软件不会那么糟糕!

于 2013-05-31T06:43:04.220 回答