2010-04-22 4 views
2

프로덕션 웹 응용 프로그램의 일부 기능을 향상 시키려고합니다.System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse 요청이 HTTP 상태 404와 함께 실패했습니다.

  • 을 내 WINXP에 단위 테스트 꽤 5.1 개발 시스템을 IIS 후 나는 비주얼 스튜디오 2008는 스테이징 서버에 다음 프로젝트를 밀어 내 데브 PC에 게시 대화 상자를 사용하므로, 모든 것을 내 로컬 호스트에서 작동 주요 웹 응용 프로그램
  • 에 "보조"웹 서비스 (아직 홈 페이지가이 WS를 호출하지 않기 때문에 문제)
(홈 페이지는이 WS를 호출하려고)은 "차"웹 서비스

나는 followin을 얻는다. g 내 브라우저에이 입력 웹 응용 프로그램의 홈 페이지를 탐색 할 때 : myUglyURL

Server Error in '/zVersion2' Application. 
The request failed with HTTP status 404: Not Found. 
Description: An unhandled exception occurred during the execution of the current web request.Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Net.WebException: The request failed with HTTP status 404: Not Found. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[WebException: The request failed with HTTP status 404: Not Found.] 
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +431289 
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204 
ProxyZipeeeService.WSZipeee.Zipeee.GetMessageByType(Int32 iMsgType) in C:\Documents and Settings\johna\My Documents\Visual Studio 2008\Projects\ProxyZipeeeService\ProxyZipeeeService\Web References\WSZipeee\Reference.vb:2168 
Zipeee.frmZipeee.LoadMessage() in C:\Documents and Settings\johna\My Documents\Visual Studio 2008\Projects\Zipeee\frmZipeee.aspx.vb:43 
Zipeee.frmZipeee.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\johna\My Documents\Visual Studio 2008\Projects\Zipeee\frmZipeee.aspx.vb:33 
System.Web.UI.Control.OnLoad(EventArgs e) +99 
System.Web.UI.Control.LoadRecursive() +50 
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 

버전 정보 : 마이크로 소프트 .NET 프레임 워크 버전 : 2.0.50727.3607; ASP.NET 버전 : 내가 준비 서버에 잘못 일을 구성한 의심

Public wsZipeee As New ProxyZipeeeService.WSZipeee.Zipeee 
Dim dsStandardMsg As DataSet 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    If Not Page.IsPostBack Then 
     LoadMessage() 
    End If 
End Sub 

Private Sub LoadMessage() 
    Dim iCnt As Integer 
    Dim iValue As Integer 

    dsStandardMsg = wsZipeee.GetMessageByType(BizConstants.MsgType.Standard) 
End Sub 

: 2.0.50727.3082 여기

는 해당 소스 코드의 비트입니다. 준비 서버는 IIS 6.0을 실행하는 Windows Server 2003 ServicePack 2입니다. MOJITO라는 스테이징 서버에 기본 사이트와 2 개의 웹 서비스를 게시 할 때 D 드라이브에 각각의 물리적 디렉토리를 만들었습니다.

  • zVersion2
  • zVersion2wsSQL
  • zVersion2wsEmergency
  • 위의 모든 새로운 응용 프로그램 풀 I 설정을 사용하도록 구성 명명 된

zVersion2aspNet20 : 다음 INETMGR를 사용하여, 나는 다음과 같은 가상 디렉터리를 구성. 이 컴퓨터의 기본 웹 사이트 MOJITO는 ASP.NET 1.1을 사용하도록 구성되었으며 IP 주소는 (모두 할당되지 않음)으로 설정됩니다. 후자의 2 가지 웹 서비스의 프로덕션 버전은 각각 ZipeeeService 및 EmergencyService라는 MOJITO 시스템에서 실행됩니다.

위 웹 서비스 (zVersion2wsSQL 및 zVersion2wsEmergency라는 이름의)의 준비 버전이 동일한 IP 주소를 가진 동일한 웹 서버에 공존 할 수 있습니까?

내가 (INETMGR 마우스 오른쪽에서하고 찾아보기를 클릭) 독립적으로 zVersion2wsSQL의 웹 서비스를 테스트 예상대로 작동 할 때이 조각처럼 (즉, 웹 서비스의 모든 방법을 제시) 있습니다 :

  • GetMessageByType MessageName이 = "Get_x0020_Message_x0020_By_x0020_Type"

내가 그것을 클릭하여이의 WebMethod를 테스트 할 수 있으며 간단한 데이터 유형을 소요하고 내가 로컬 호스트에를 호출하고 있기 때문에 (테스트 대화 상자를 표시합니다 (예 :모히토) :

**Get Message By Type** 

**Test** 
To test the operation using the HTTP POST protocol, click the 'Invoke' button. 
Parameter Value 
iMsgType: _______     [INVOKE button] 

SOAP 1.1 ....etc. 

가 나는 중지하지만 난 이해할 수있는 사람이 왜 "을 (를) 찾을 수 없습니다"이 요청 결과 나를 도울 수 있기를 바랍니다, 그래서 내가 너무 많은 정보와 함께 산책했다 수도 있습니다 우려하고있다. 감사.

답변

4

이름을 변경해야 할 때 "이름"을 사용하면 무언가를 얻을 수있는 곳이 많습니다 (최소한 나에게). 여기에는 2 개의 webservices와 1 개의 기본 사이트가 있었으며 준비 사이트 서버에 webservice를 게시 할 때 해당 사이트를 실제 디렉토리에 저장하는 데 어려움을 겪었습니다. 이 스테이징 서버는 두 웹 서비스의 프로덕션 버전을 호스팅하기 때문에 웹 서비스의 스테이징 버전에 대한 가상 디렉토리를 만들 때 문제가 발생했습니다.

즉, 제작 버전과 다른 이름으로 생성했습니다 (예 : SomeWebSvcVersion2 vs. SomeWebSvc). 그런 다음 INETMGR을 사용하는 스테이징 서버에서 이러한 "사이트"를 탐색 할 수 있고 "테스트"페이지가 예상대로 나타나면 입력 매개 변수에 대한 간단한 데이터 유형으로 웹 메소드를 호출 할 수 있습니다.

가상 디렉터리의 "임의"이름이 좋지 않음을 발견했습니다. 각 웹 서비스를 래핑하는 프록시 클래스에 대한 App.Config의 이름과 일치해야합니다. 위의 오류의 경우 그래서,의 app.config는 포함 :

<applicationSettings> 
    <ProxyZipeeeService.My.MySettings> 
     <setting name="ProxyZipeeeService_WSZipeee_Zipeee" serializeAs="String"> 
      <value>http://localhost/ZipeeeWebService/Zipeee.asmx</value> 
     </setting> 
    </ProxyZipeeeService.My.MySettings> 
</applicationSettings> 

내 proxyclass의 DLL로 컴파일 reference.vb 파일이 새 버전을 구성 할 수 ZipeeeWebService라는 스테이징 서버의 가상 디렉터리를 필요로하고 내 시도 다른 가상 디렉터리 이름을 사용하여 준비 서버에 게시 한 것이 잘못되었습니다.

나는이 메모가 누군가에게 도움이되기를 바랍니다. 경우 폐쇄.

+0

예, 유용했습니다. 감사합니다. 가상 디렉터리는 진짜 고통 = – Francisco

관련 문제