2012-12-28 1 views
5

VS2010에서 웹 서비스를 만들고 3.5 Framework Web Service 프로젝트로 사용하려고합니다.VS2010 Framework에서 웹 서비스의 메서드가 로컬로 실행될 때 나타나지 않습니다.

기본 Hello World 메서드가 있고 거기에 일부 추가했습니다. 내가 추가 한 것들은 차례대로 데이터 셋에 연결되는 데이터 프로 바이더 클래스에 대한 호출을 가지고 있습니다. 그러나 로컬에서 실행할 때 Hello World 메서드 만보고 새 메서드는 볼 수 없습니다. hello world 메서드를 삭제하고 다시 실행하면 여전히 볼 수 있습니다.

로컬로 실행하려면 무엇이 필요하며 스테이징 및 프로덕션 서버에서 실행하는 것과 동일한 프로세스입니까?

저는 1.1에서 서비스를 만드는 데 익숙합니다. 3.5에서 만드는 첫 번째 서비스입니다.

+3

서비스 참조 업데이트를 시도 했습니까? –

+0

서비스를 어떻게 만들었습니까? WCF 서비스입니까, 아니면 ASMX입니까? –

답변

5

웹 서비스 웹 사이트를 실행하고 .asmx 페이지를 탐색 할 때 메소드가 사용 가능한 서비스 호출 목록에 나타나지 않는다는 것을 의미합니다. 이 스크린 샷 :

enter image description here

당신이 무슨 뜻인지의 ....

그냥 함수 정의하기 전에 [WebMethod()] 선언을 놓치고 중 하나 대부분의 경우 IF, 또는 메소드가 public으로 선언되어 있지 않습니다.

예 : 로컬 웹 서비스 프로젝트를 실행할 때

[WebMethod()] 
public string GetName(int EmployeeNumber) 
{ 
    // some code to get name from emplyee # 
    return ReturnValue; 
} 

표시해야한다.

중 어느 것도 이러한 것 :

public string GetName(int EmployeeNumber) 
{ 
    // some code to get name from employee # 
    return ReturnValue; 
} 

나 또한

[WebMethod()] 
private string GetName(int EmployeeNumber) 
{ 
    // some code to get name from employee # 
    return ReturnValue; 
} 

, 내가 추측하고있어 당신이하여 HelloWorld 메서드를 삭제할 때 당신이 당신의 방법을 볼 수있는 이유는, 이유 메서드를 삭제하고 [WebMethod()] 선언을 남기고 있다는 것입니다. 그러면 코드가 변경되어 [WebMethod()] 선언이 함수에 적용됩니다. 선언 다음에 오는 첫 번째 함수 일 것입니다.

+0

"표시하지 않음"으로 다른 것을 의미하는 경우 알려 주시면이 답변을 삭제하거나 변경하겠습니다. – David

0

함수가 정적으로 선언되었는지 확인하십시오. 그래서 심지어 [의 WebMethod()] 다음과 같은 상황에서는 작동하지 않습니다 :

[WebMethod()] 
public static string GetName(int EmployeeNumber) 
{ 
// some code to get name from employee # 
return ReturnValue; 
} 

정적 제거하고 작동합니다!

관련 문제