【问题标题】:Host a Wcf Service Library in a Web Application在 Web 应用程序中托管 Wcf 服务库
【发布时间】:2010-08-11 08:01:21
【问题描述】:

我想托管 Wcf 服务,在 Wcf 服务库中创建,在 Web 应用程序中。

我已经用 Web Service asmx 做了同样的事情:

using System.Reflection;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

namespace WebServiceLibrary
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class WebService1 : WebService, IHttpHandlerFactory
    {
        private static WebServiceHandlerFactory wshf = new WebServiceHandlerFactory();
        private static MethodInfo coreGetHandlerMethod = typeof(WebServiceHandlerFactory).GetMethod("CoreGetHandler", BindingFlags.Instance | BindingFlags.NonPublic);

        public System.Web.IHttpHandler GetHandler(System.Web.HttpContext context, string requestType, string url, string pathTranslated)
        {
            return (IHttpHandler)coreGetHandlerMethod.Invoke(wshf, new object[] { GetType(), context, context.Request, context.Response });
        }

        public void ReleaseHandler(IHttpHandler handler)
        {

        }

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
}

Web 应用程序的 web.config 文件:

    <system.webServer>
      <handlers>
          <add name="WebService" path="WebService1.asmx" verb="*" preCondition="integratedMode" type="WebServiceLibrary.WebService1"/>
      </handlers>
    </system.webServer>

这里有没有一种方法可以用 Wcf 服务做同样的事情?

问候。

【问题讨论】:

    标签: c# asp.net web-services wcf


    【解决方案1】:

    当然 - 最简单的事情可能是创建一个新的“WCF 服务应用程序”(这是一个 web 应用程序)并将其用作您需要哪些位的模板,例如您的 system.serviceModel 部分web.config

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2016-08-14
      • 2012-03-16
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2013-10-16
      • 2012-11-29
      • 2017-01-20
      • 1970-01-01
      相关资源
      最近更新 更多