我想寫一個WCF 4.0服務將接收SOAP提醒,從2010年在這裏TFS 404錯誤是我的服務合同:當TFS 2010發送SOAP警報到WCF 4.0服務
[ServiceContract(Namespace = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03")]
public interface IService1
{
[OperationContract(Action = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03/Notify")]
[XmlSerializerFormat(Style = OperationFormatStyle.Document)]
void Notify(string eventXml, string tfsIdentityXml);
}
我使用此綁定配置爲我服務端點:
<bindings>
<wsHttpBinding>
<binding name="noSecurity">
<security mode="None"/>
</binding>
</wsHttpBinding >
</bindings>
已經註冊使用BISSUBSCRIBE.EXE一個TFS警報,並指出我的服務,每次被觸發我的服務不會被調用,而是我看到了下面的時間TfsJobAgent日誌:
Notification not delivered.
Notification: WorkItemChangedEvent (DeliveryType: Soap; Address: http://192.168.10.10/TrafficLight/Service1.svc)
Exception: Microsoft.TeamFoundation.TeamFoundationServiceUnavailableException: Team Foundation services are not available from server http://192.168.10.10/TrafficLight/Service1.svc. Technical information (for administrator):
HTTP code 404: Not Found ---> System.Net.WebException: The remote server returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.AsyncWebRequest.ExecRequest(Object obj)
--- End of inner exception stack trace ---
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ProcessHttpResponse(HttpWebResponse response, Stream responseStream, WebException webException, XmlReader& xmlResponseReader)
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ExecWebServiceRequest(HttpWebRequest request, XmlWriter requestXml, String methodName, HttpWebResponse& response)
at Microsoft.TeamFoundation.JobService.Extensions.Core.TeamFoundationNotificationClient.Notify(String eventXml, String tfsIdentityXml, Subscription subscription)
at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.SendSoapNotification(TeamFoundationRequestContext requestContext, TeamFoundationNotification notification, TeamFoundationIdentityService identityService)
(這是從[Tfs_Configuration]拍攝。[DBO]。[tbl_JobHistory]我的TFS 2010安裝的表)
奇怪的是,當我嘗試在同一臺機器,其中在Internet Explorer我服務的URL TfsJobAgent正在運行,我收到標準的「您已經創建了一項服務」。由WCF自動生成的網頁和不是 404錯誤。
最後,我的問題:爲什麼TFS工作代理從我的服務接收到404錯誤似乎配置正確?我該如何解決這個問題?
更新:我試過重寫我的服務作爲一個ASMX Web服務,它運行良好。以下是實施。我仍然想學習如何使用WCF 4.0實現相同,所以任何幫助將不勝感激。
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[SoapDocumentMethod("http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03/Notify", RequestNamespace = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03")]
[WebMethod]
public void Notify(string eventXml, string tfsIdentityXml)
{
// log incoming event...
}
嗨埃瓦爾德。非常感謝這篇教程 - 我依靠它來獲取我的位置。關於wsHttpBinding - 我已經嘗試了這兩個和basicHttpBinding無濟於事:| – urig 2010-11-08 07:53:06
我已經在你的教程再次Ewald,嘗試wsHttpBinding與安全模式設置爲無,現在它的工作。謝謝! – urig 2010-11-08 08:01:06