2009-06-22 1 views
50

.Net에서 웹 서비스를 만들었으므로 서비스 파일의 주소에 작동 방식에 대한 자동 생성 된 설명이 있습니다. 컴퓨터에서 페이지를 실행할 때 호스트 된 페이지에 서비스에 테스트 값을 전송하는 데 사용할 수있는 양식이 있습니다. 그러나 원격 컴퓨터에서는 양식을 숨기고 위에 표시된 메시지를 제공합니다."테스트 양식은 로컬 컴퓨터의 요청에만 사용할 수 있습니다."

이 점이 있습니까? 나는 다른 사이트가 이것을 "더 안전하게"한다고 부릅니다. 그러나 누군가 당신이 나에게 묻는다면,이 사이트를 쉽게 만들 수 있습니다.

+2

당신은 질문이 있었나요? 사용중인 .NET 버전이나 ASMX 서비스 또는 WCF 사용 여부를 말할 수도 있습니다. –

+0

어떻게 webService를 호출 할 수 있습니까? ServerSide에서 anychange가 발생하면 이벤트를 실행해야합니다. 서버 호스트에 프로그램을 넣어야합니까? –

답변

3

메타 데이터를 게시하고 공개/비보안 웹 서비스 인 경우 모든 사람이 간단한 클라이언트를 생성하여 웹 서비스를 망칠 수 있습니다. 이 경우 로컬 컴퓨터에서만 생성되는 웹 클라이언트를 사용하는 것이 불편한 것처럼 보입니다.

귀하의 서비스가 개인적이고 보안 성이 있다면 엄청난 보안 허점이되어 서버의 이름을 가진 사람에게 인증 된 클라이언트에게 서비스를 제공하여 잠재적으로 데이터에 액세스하여 모든 종류의 위험을 초래할 수 있습니다.

ASMX 웹 서비스에 대한 UI를 서버 자체에서만 생성하는 정책은 우연한 보안 허점을 제거하면서 멋진 툴링을 제공하려는 시도였습니다. WCF는 어떤 경우에도 이것을 없앴습니다. 메타 데이터가 게시 된 경우에만 클라이언트를 생성 할 수 있으며 서비스에 액세스하려면 올바른 보안을 구현해야합니다.

+0

그래서 어떻게 일 하죠? – Si8

+2

아래의 답변 (120 개 이상의 upvotes가있는 답변)은 작동 방법을 알려줍니다 - 행운을 비네! –

+0

나는이 질문을했다 : http://stackoverflow.com/questions/41752213/why-is-asmx-giving-an-error-with-pulling-data-from-client-script. 좀 도와 줄 수있어? – Si8

138

당신은이 노드를 포함하도록 web.config을 수정하여이 문제를 해결할 수 있습니다 : 이것은 당신이 당신의 브라우저를 통해이 .asmx 웹 서비스를 방문 할 수

<configuration> 
    <system.web> 
    <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</configuration> 

. 그런 다음 브라우저에서 웹 서비스를 호출하고 인수를 전달하고 결과를 볼 수 있습니다.

+8

+1 내 앱이 안전한 환경에 있고 품질 보증에 필요하므로 +1이 필요합니다. 감사. – BryanGrimes

+7

+1 내 문제를 해결했습니다 .. 매우 도움이 :) –

+0

나에게 도움이되지만 다른 문제가 있습니다. 지정된 포트가있는 페이지로 리디렉션됩니다. 주소 문자열에서 포트를 제거하려면 어떻게해야합니까? –

14

참고로 .NET 4.0을 사용하고 있는데 이와 동일한 문제가있었습니다. 내가 사용하지만

... 그 같은 지역에서는

<add name="HttpSoap12"/> 
<add name="HttpSoap"/> 
<add name="HttpGet"/> 
<add name="HttpPost"/> 

그것은했다. 그러나 단지 HttpGetHttpPost으로는 그렇지 않습니다.

관련 문제