C# 如何使用Team Foundation Server Web钩子制作WCF Web服务耗材? 我遇到了Team Foundation Server 2015 Web钩子() 我可以在TFS端创建web钩子,它成功地使用了RequestBin web服务。但是当我创建WCF Web服务时,总是会出现错误。 首先,我get@无法处理消息,因为内容类型为'application/json;字符集utf-8“不是预期的类型”text/xml;字符集utf-8'(415)” 我在这里读了很多文章和相关问题。 尝试将Factory=“System.ServiceModel.Activation.WebServiceHostFactory”添加到.svc文件。之后,在使用服务时出现404错误,在尝试打开其WSDL时未找到端点
所以,我的界面是:C# 如何使用Team Foundation Server Web钩子制作WCF Web服务耗材? 我遇到了Team Foundation Server 2015 Web钩子() 我可以在TFS端创建web钩子,它成功地使用了RequestBin web服务。但是当我创建WCF Web服务时,总是会出现错误。 首先,我get@无法处理消息,因为内容类型为'application/json;字符集utf-8“不是预期的类型”text/xml;字符集utf-8'(415)” 我在这里读了很多文章和相关问题。 尝试将Factory=“System.ServiceModel.Activation.WebServiceHostFactory”添加到.svc文件。之后,在使用服务时出现404错误,在尝试打开其WSDL时未找到端点,c#,web-services,wcf,tfs-2015,C#,Web Services,Wcf,Tfs 2015,所以,我的界面是: using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; namespace MyService { // ПРИМЕЧАНИЕ. Команду "Переимено
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace MyService
{
// ПРИМЕЧАНИЕ. Команду "Переименовать" в меню "Рефакторинг" можно использовать для одновременного изменения имени интерфейса "IService1" в коде и файле конфигурации.
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke]
string RollUp(string sData);
// TODO: Добавьте здесь операции служб
}
// Используйте контракт данных, как показано в примере ниже, чтобы добавить составные типы к операциям служб.
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
}
我的计划是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace MyService
{
// ПРИМЕЧАНИЕ. Команду "Переименовать" в меню "Рефакторинг" можно использовать для одновременного изменения имени класса "Service1" в коде, SVC-файле и файле конфигурации.
// ПРИМЕЧАНИЕ. Чтобы запустить клиент проверки WCF для тестирования службы, выберите элементы Service1.svc или Service1.svc.cs в обозревателе решений и начните отладку.
public class Service1 : IService1
{
public string RollUp(string sData)
{
return "Sucess " + sData;
}
}
}
my web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!--Чтобы избежать раскрытия метаданных, до развертывания задайте следующим параметрам значение "false". -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- Чтобы при сбое получать подробные сведения об исключении для целей отладки, установите для нижеприведенного параметра значение true. Перед развертыванием установите значение false, чтобы избежать раскрытия информации об исключении -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="json">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="MyService.Service1">
<endpoint name="jsonEP"
address=""
binding="webHttpBinding"
behaviorConfiguration="json"
contract="MyService.IService1"/>
</service>
</services>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
Для просмотра корневого каталога веб-приложения во время отладки установите значение true.
Перед развертыванием установите значение false, чтобы избежать раскрытия сведений в папке веб-приложения.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
所有这些我都得到了404错误
希望有人能帮助我,因为我已经好几天没能打败这个web服务了,现在还不知道该怎么办。404错误意味着找不到该页面。你发布过WCF web服务吗?如果你运行Fiddler检查你使用的URL,你会得到任何错误吗?是的,我将我的web服务发布到IIS,并且可以在那里看到它的wsdl。Fiddler,从来没有使用过我t、 它可以检查web服务吗?如果它只检查URL,那么-我看到wsdl,web服务就在那里的某个地方。