托管

问题描述:

我寻觅了很多关于托管WCF的方法,并发现他们的工作,但是,在我的一个解决方案我有WCF Service Project(它与某些连接字符串的一个web.config)ASPX和WCF和ASPX.NET项目(也有一个web.config),请问任何人可以澄清我如何可以在网站上托管他们。托管

谢谢。

您是否想要其他客户端访问此WCF服务?

如果没有,只需将.svc文件保留在现有的Web应用程序中,并在需要时使用它。

如果是,将WCF项目作为IIS,控制台或WAS中的网站托管,并从您的aspx Web应用程序中引用它。

+0

我希望WCF也可以为其他应用程序提供服务。现在,我正在一个免费主机上测试我的代码,该代理给我一个子域,并且只有一个sql server db,在这种情况下,我该如何实现?感谢Praveen。 – surpavan

+1

在这种情况下,您可以将您的wcf服务作为IIS上的网站托管。那么任何Web应用程序都可以添加它的Web引用并使用它。 – PraveenLearnsEveryday

+0

因此,必须在另一个站点或子域中托管一个wcf,以便可以容纳多个Web配置并且可以引用它们。谢谢。 – surpavan

托管WCF服务,你有以下几种选择:

  • 的WinForms应用
  • 控制台应用程序
  • 的Windows服务
  • Web应用程序(ASP.NET)托管在Internet信息服务(IIS )
  • Windows Vista或Windows Server上的IIS 7.0和WAS中的WCF服务代码名称“Longhorn”

See here for more information on hosting a WCF service.

举办一个Asp.Net应用程序,我建议使用IIS,see here for how。但是,使用WSE也可以将其作为Windows服务托管。 See here for how.

+0

谢谢。但是,这并没有解决我的问题或我的理解。 – surpavan

其简单,你只需要添加一个'.svc'文件到你的ASPX.net项目。例如Service1.svc

然后将下面的代码添加到该文件

<%@ ServiceHost Language="C#" Service="WCFServiceProject.Main" %> 

的WCFServiceProject.Main是提供您的服务功能类的完全限定命名空间和名称

你也需要在IIS中注册svc扩展才能工作,如果你还没有的话。别忘了将对WCF服务项目的引用添加到aspx.net项目中。

如果要动态地创建服务,然后看到我的问题的一些提示Creating wcf service within IIS in code

只是重读更新(编辑)的问题。您需要将WCF服务项目的连接细节复制到您的asp.net项目中。

+0

感谢您的信息基思。但是,在构建WCF服务后,连接字符串不能在发布的服务器上编辑,因为它是DLL。根据你的建议,如果我将连接字符串添加到我的Aspx网站的Web配置中,它不会这样工作,是吗? – surpavan

+0

如果您的WCF项目是您的ASPX网站的一部分,那么网站的web.config将成为WCF项目的web.config。 WCF项目的配置文件被忽略。然后,您的WCF服务将读取ASPX项目中定义的连接字符串。 –