WCF 웹 서비스 오류 : ASP.NET 호환성을 지원하지 않으므로 서비스를 활성화 할 수 없습니다.
편안한 wcf 웹 서비스를 만들려고합니다. 클라이언트를 통해 서비스에 연결하려고하면 다음 오류가 발생합니다.
ASP.NET 호환성을 지원하지 않기 때문에 서비스를 활성화 할 수 없습니다. 이 응용 프로그램에 대해 ASP.NET 호환성이 활성화됩니다. web.config에서 ASP.NET 호환성 모드를 끄거나 RequirementsMode 설정이 '허용'또는 '필수'인 서비스 유형에 AspNetCompatibilityRequirements 특성을 추가합니다.
다른 사람들은 문제가 있었지만 web.config를 변경하여 문제를 해결했습니다. 수정 사항을 구현했지만 여전히 문제가 있습니다. 내 web.config는 다음과 같습니다.
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="WebBehavior" >
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyServiceBehavior" name="myfirstwcf">
<endpoint address="ws" binding="basicHttpBinding"
contract="Imyfirstwcf" />
<endpoint address="ws2" binding="wsHttpBinding"
contract="Imyfirstwcf" />
<endpoint address="" behaviorConfiguration="WebBehavior"
binding="webHttpBinding"
contract="Imyfirstwcf" />
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled= "true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
주 서비스에서 서비스를 다음과 같이 표시 할 수 있습니다.
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
에서 http://forums.silverlight.net/t/21944.aspx
it will work :
you have change this lines in code or add the line in web.config:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
If someone has a lot of services and services are created using custom ServiceHostFactory
, then AspNetCompatibilityRequirementsAttribute
can also be set in CreateServiceHost
method.
Example:
public class HostFactory : ServiceHostFactory
{
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
var host = new ServiceHost(serviceType, baseAddresses);
//other relevent code to configure host's end point etc
if (host.Description.Behaviors.Contains(typeof(AspNetCompatibilityRequirementsAttribute)))
{
var compatibilityRequirementsAttribute = host.Description.Behaviors[typeof(AspNetCompatibilityRequirementsAttribute)] as AspNetCompatibilityRequirementsAttribute;
compatibilityRequirementsAttribute.RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed;
}
else
{
host.Description.Behaviors.Add(new AspNetCompatibilityRequirementsAttribute() { RequirementsMode =AspNetCompatibilityRequirementsMode.Allowed});
}
return host;
}
}
Actually, as per the latest documentation you need to do 2 things,
1.For your service class:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(Namespace = "url")]
public class Service : IService
{
}
2.For web.config
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
ReferenceURL : https://stackoverflow.com/questions/11904202/wcf-web-service-error-the-service-cannot-be-activated-because-it-does-not-suppo
'IT TIP' 카테고리의 다른 글
SQL을 사용하지 않고 Magento 설정 스크립트의 ALTER TABLE (0) | 2021.01.09 |
---|---|
교리 및 LIKE 쿼리 (0) | 2021.01.09 |
Scala에 경로 또는 파일이 있는지 확인하는 방법 (0) | 2021.01.09 |
Ruby는 이러한 파일을로드 할 수 없습니다-active_support / core_ext / object / blank (0) | 2021.01.09 |
밑줄이있는이 이름이 CLS 규격이 아닌 이유는 무엇입니까? (0) | 2021.01.09 |