내가 묻는 이유는 아래 지침에 따라 WCF 서비스를 설정하고 Visual Studio Online에서 SOAP 알림을 설정했기 때문에 내 서비스가 호출되지 않는 것입니다. IIS 8.5 로그는 VSO 서버에서 서비스에 접속하려는 시도가 없음을 보여줍니다.Visual Studio 온라인은 SOAP WorkItem 변경 알림을 지원합니까?
지원되는 경우 다음은 관련 서비스 비트가 잘못 설정되어 있는지 확인하기위한 것입니다.
WCF 서비스 - 푸른 WebRole
계약 및 구현
[ServiceContract(Namespace = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03")]
public interface IWorkItemSubscriber
{
[OperationContract(Action = "http://schemas.microsoft.com/TeamFoundation/2005/06/Services/Notification/03/Notify")]
[XmlSerializerFormat(Style = OperationFormatStyle.Document)]
void Notify(string eventXml, string tfsIdentityXml);
}
// Note, I've tried w/ and w/out this Compatibility Attribute
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class WorkItemSubscriber : IWorkItemSubscriber
{
public void Notify(string eventXml, string tfsIdentityXml)
{
// Do stuff
}
}
의 Web.config로 호스팅 .NET 4.5.1
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<customErrors mode="Off"/>
</system.web>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="noSecurity">
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="VsoNotificationService.Wcf.WorkItemSubscriber" behaviorConfiguration="eventServiceBehavior">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="noSecurity" contract="VsoNotificationService.Wcf.IWorkItemSubscriber" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="eventServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" aspNetCompatibilityEnabled="true" /> <!-- note: I've tried w/ and w/out the aspNetCompatibilityEnabled attribute -->
</system.webServer>
</configuration>
비주얼 스튜디오 온라인 구성
나는 내 자신의 클라이언트를 만들고 서비스를 호출하여 서비스를받을 수 있음을 확인했습니다. 메서드에 넣은 코드는 모두 실행되며 Visual Studio 2013을 통해 원격 디버깅을 수행하면 메서드의 중단 점에 도달합니다. 따라서 서비스가 시작되어 실행 중이므로 코드 중단 점, 코드 내용 또는 IIS 로그를 통해 Visual Studio Online에서 트래픽이 표시되지 않습니다. 기능이 제대로 작동하지 않는다고 생각합니까?
여기에 관련 질문이 있습니다. http://stackoverflow.com/questions/19861263/soap-alerts-for-team-foundation-service -하지만 도움이되지 않는 제안은 – ckittel
다음 SQL 문을 사용하십시오. 당신의 TFS 데이터베이스에 :..'[Tfs_ConfigDB]에서 상영, 결과, ResultMessage 을 선택 [DBO] [tbl_JobHistory] 은 WHERE 작업 ID = 'A4804DCF-4BB6-4109-B61C은-E59C2E8A9FF7' 과는><결과 0 '는 것이다 오류가있는 알림을 나열하십시오. 아마도 웹 서비스를 사용할 수 없거나 도달 할 수없는 것과 같은 것을 볼 수 있습니다. – MikeR
@MikeR, 이것은 Visual Studio 온라인입니다 - 주제/OP가 말했듯이, 나는 데이터베이스에 접근 할 수 없습니다 (내가 알고있는 ...) – ckittel