gpt4 book ai didi

c# - Microsoft WCF 测试客户端错误

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:56 25 4
gpt4 key购买 nike

我是 WCF 服务的新手。我正在浏览一些教程并得到一个简单的程序并尝试在 C# 中的 WCF 服务应用程序中执行。代码如下所示。

IService1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WcfService1
{
[ServiceContract]
public interface IService1
{
int calculatedays(int day,int month,int year);
}
}

Service1.svc.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WcfService1
{
public class Service1 : IService1
{
public int calculatedays(int day, int month, int year)
{
DateTime dt = new DateTime(year, month, day);
int datetodays = DateTime.Now.Subtract(dt).Days;
return datetodays;
}
}
}

网络配置

    <?xml version="1.0"?>
<configuration>

<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>

当我运行应用程序时,它给出的错误是

Error: Cannot obtain Metadata from http://localhost:2049/Service1.svc If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: http://localhost:2049/Service1.svc Metadata contains a reference that cannot be resolved: 'http://localhost:2049/Service1.svc'. The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error

最佳答案

创建一个主机,在主机程序中添加appconfig文件,然后在appconfig中写入如下代码。

 <?xml version="1.0"?>
<configuration>

<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<system.serviceModel>
<services>
<service name="WcfService1.Service1" behaviorConfiguration="maxBehaviour">
<endpoint address="WcfService1" binding="netTcpBinding" contract="WcfService1.IService1">
</endpoint>


<host>
<baseAddresses>
<add baseAddress="http://localhost:2049/"/>
<add baseAddress="net.tcp://localhost:8090/"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="maxBehaviour">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

</configuration>

将Wcfservice1项目的Reference添加到该项目中。创建一个类并编写以下代码

        public static void Main()
{
using (ServiceHost host = new ServiceHost(typeof(WcfService1.Service1)))
{
host.Open();
Console.WriteLine("Started Report Host");
Console.ReadKey();
}
}

关于c# - Microsoft WCF 测试客户端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com