是否可以在共享主机上的IIS中启动WCF UDP侦听器,而无需用户首先访问HTTP?

时间:2012-08-12 20:43:52

标签: asp.net wcf iis udp shared-hosting

我通过WCF在Application_Start上创建了一个甜蜜的ASP.NET 4.0 UDP侦听器。像往常一样,在我的本地机器上一切都很笨拙。在我的本地计算机上使用VS Dev Environment并将其设置为在调试时不打开任何页面,监听器启动时不会浏览任何内容。但是,每当我部署到共享主机时,我必须在侦听器启动之前通过Web浏览器访问该站点。我无法访问IIS控制面板,但我可以通过“网站面板”软件对IIS进行一些有限的设置更改。我相信共享主机使用IIS 7.5。

有没有更好的方法来解决这个问题,而不是从家用PC创建一个轮询服务,以便经常向共享主机发送HTTP请求以启动监听器?

要求

  • 客户端通过可配置端口发送UDP数据包。我无法更改客户端用于连接的IP和端口以外的任何内容
  • 解决方案必须与我的共享主机一起使用,因为此时我买不起VPS - 否则我会创建一个Windows服务。我之前通过WCF Application_Start创建一个轮询服务来创建一个窗口服务,但这只能起作用,因为用户看到的信息必须在网页上,因此始终会调用application_start。在这种情况下,用户/客户端不一定访问该网页。

想法:

  • 以某种方式将其拉入.svc。这样,当客户端访问.svc时,它会为其他人启动监听器。但是如何在端口80上运行的.svc接受UDP调用呢?我也不确定客户端是否能够连接到IP以上:PORT(我不认为它接受像URL.com/awesomeListener.svc这样的.svc路径。)

有什么建议吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

如果您运行的是ASP.NET 4.0,可以将其设置为自动启动,这将触发Application_Start:

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx