相关疑难解决方法(0)

如何以相同的URL以编程方式创建WCF服务及其元数据

TL; DR
我将在同一个URL上运行所有这三件事("您已创建Web服务"页面,WSDL页面和实际Web服务),类似于在独立WebService应用程序中创建的WCF服务项目.

我正在以编程方式创建WCF端点并将其中的大部分组合在一起.最后一件事是我无法将元数据URL与服务URL相同.我知道这应该是可行的,因为您可以从Visual Studio创建类似的服务.

我可以在浏览器中浏览WSDL,我可以将其添加为Web引用,但我无法从新创建的项目中调用它.如果我删除友好页面和wsdl页面,我可以调用该服务.

下面是我正在使用的代码.

class Program
{
    private static ManualResetEvent _ResetEvent = new ManualResetEvent(false);

    static void Main(string[] args)
    {
        Console.TreatControlCAsInput = true;

        var serviceUrl = "Fibonacci.svc";
        new Thread(() =>
        {
            var baseUri = new Uri("http://ws.test.com");
            var serviceUri = new Uri(baseUri, serviceUrl);
            BasicHttpBinding binding = new BasicHttpBinding();
            using (var host = new ServiceHost(typeof(Fibonacci), new[] { baseUri }))
            {
                host.Description.Behaviors.Add(new ServiceMetadataBehavior { HttpGetEnabled = true, HttpGetUrl = new Uri(baseUri, serviceUrl) });
                host.Description.Behaviors.Find<ServiceDebugBehavior>().IncludeExceptionDetailInFaults = true;
                host.Description.Behaviors.Find<ServiceDebugBehavior>().HttpHelpPageUrl = serviceUri;

                host.AddServiceEndpoint(typeof(IFibonacci), binding, …
Run Code Online (Sandbox Code Playgroud)

.net wcf web-services

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×1

wcf ×1

web-services ×1