사용자 정의 HttpHandler를 통해 동적 ASMX 웹 서비스를 구현 중이며 웹 서비스가 자동으로 WSDL 생성을 중지했습니다. ?사용자 정의 IHttpHandlerFactory를 사용할 때 ASMX가 WSDL을 생성하지 않습니다.
System.InvalidOperationException: XML Web service description was not found.
at System.Web.Services.Protocols.DiscoveryServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
at System.Web.Services.Protocols.WebServiceHandler.Invoke()
이 얼마 전에 잘 작동, 그래서 어딘가 파일 권한 문제가 있는지 궁금 해요 : 내가 사용하는 경우 ASMX의 URL을 WSDL, 나는 다음과 같은 오류가 발생합니다.
Google 검색은이 특정 상황에 대한 참조를 반환하지 않습니다.
나는 내 코드가 문제와 관련이 있는지 의심 스럽다.()
[WebService(Description = "...", Namespace = "...")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class MyWebService : System.Web.Services.WebService
{
[WebMethod]
void MyWebMethod() {}
}
public class VirtualWebServiceFactory : IHttpHandlerFactory
{
public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{
WebServiceHandlerFactory wshf = new WebServiceHandlerFactory();
MethodInfo coreGetHandler = wshf.GetType().GetMethod("CoreGetHandler", BindingFlags.NonPublic | BindingFlags.Instance);
IHttpHandler handler = (IHttpHandler)coreGetHandler.Invoke(wshf, new object[] { typeof(MyWebService), context, context.Request, context.Response });
return handler;
}
}
디 컴파일 System.Web.Services.Protocols.DiscoveryServerProtocol.WriteReturns 그것을 다른 곳에서 만든 사전에 XML 서비스 설명을 보이는 것을 알 수 : 그것은 변경되지 않았습니다.
DiscoverServerProtocol 등에 익숙한 사람이 XML 서비스 설명을 빌드하지 못할 수도있는 상황을 알기를 기대했습니다.
잘 다음 작품 :
ServiceDescriptionReflector reflector = new ServiceDescriptionReflector();
reflector.Reflect(typeof(MyWebService), "...");
이 MyWebService.asmx에 탐색은 모든 기능을 표시하고 테스트를 허용한다. 그러나? WSDL을 사용하면 위의 예외가 발생합니다.
일부 코드가 보일 까? 아니면 추측해야합니까? 너의 선택. –
코드 예제를 추가했습니다. 나는 그들이 문제에 대해 어떤 생각을 밝힐 지 의심 스럽다. System.Web.Services.Protocols.DiscoveryServiceProtocol의 내부에 익숙한 사람이 WSDL을 작성할 수없는 상황을 알 수 있기를 바랍니다. –
안녕하세요, 어디서 났습니까? –