Answered by:
Metadata contains a reference that cannot be resolved, WCF - NEED URGENT HELP

Question
-
have a WCF service issue. I made some changes to the service rename/added/removed services. Solution builds fine but when I reference this WCF service from a test solution...getting this error. It seems like there are some old references that haven't been removed. Looking for some feedback on how to resolve this. Thanks Jay
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Setting environment for using Microsoft Visual Studio 2010 x86 tools.
c:\Program Files\Microsoft Visual Studio 10.0\VC>svcutil /t:metadata http://loca
lhost:1141/Well/WellService.svc
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.1]
Copyright (c) Microsoft Corporation. All rights reserved.Attempting to download metadata from 'http://localhost:1141/Well/WellService.svc
' using WS-Metadata Exchange or DISCO.
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.1]
Copyright (c) Microsoft Corporation. All rights reserved.Error: Cannot obtain Metadata from http://localhost:1141/Well/WellService.svc
If this is a Windows (R) Communication Foundation service to which you have acce
ss, please check that you have enabled metadata publishing at the specified addr
ess. For help enabling metadata publishing, please refer to the MSDN documentat
ion at http://go.microsoft.com/fwlink/?LinkId=65455.
WS-Metadata Exchange Error
URI: http://localhost:1141/Well/WellService.svcMetadata contains a reference that cannot be resolved: 'http://localhost:114
1/Well/WellService.svc'.The server did not provide a meaningful reply; this might be caused by a con
tract mismatch, a premature session shutdown or an internal server error.
HTTP GET Error
URI: http://localhost:1141/Well/WellService.svcThere was an error downloading 'http://localhost:1141/Well/WellService.svc'.
The request failed with the error message:
--
<html>
<head>
<title>The service cannot be activated because it does not support ASP.N
ET compatibility. ASP.NET compatibility is enabled for this application. Turn of
f ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityReq
uirements attribute to the service type with RequirementsMode setting as 'Allowe
d' or 'Required'.</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:bl
ack;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5p
x}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red
}
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maro
on }
pre {font-family:"Lucida Console";font-size: .9em}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy;
cursor:hand; }
</style>
</head><body bgcolor="white">
<span><H1>Server Error in '/' Application.<hr width=100% size=1 colo
r=silver></H1><h2> <i>The service cannot be activated because it does not support
ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Tu
rn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibili
tyRequirements attribute to the service type with RequirementsMode setting as 'A
llowed' or 'Required'.</i> </h2></span><font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
<b> Description: </b>An unhandled exception occurred during the exec
ution of the current web request. Please review the stack trace for more informa
tion about the error and where it originated in the code.<br><br>
<b> Exception Details: </b>System.InvalidOperationException: The ser
vice cannot be activated because it does not support ASP.NET compatibility. ASP.
NET compatibility is enabled for this application. Turn off ASP.NET compatibilit
y mode in the web.config or add the AspNetCompatibilityRequirements attribute to
the service type with RequirementsMode setting as 'Allowed' or 'Required'.<br><
br><b>Source Error:</b> <br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code>An unhandled exception was generated during the execution of the current web req
uest. Information regarding the origin and location of the exception can be iden
tified using the exception stack trace below.</code></td>
</tr>
</table><br>
<b>Stack Trace:</b> <br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>[InvalidOperationException: The service cannot be activated because it does not
support ASP.NET compatibility. ASP.NET compatibility is enabled for this applica
tion. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCom
patibilityRequirements attribute to the service type with RequirementsMode setti
ng as 'Allowed' or 'Required'.]
System.ServiceModel.Activation.HostedAspNetEnvironment.ValidateCompatibilityR
equirements(AspNetCompatibilityRequirementsMode compatibilityMode) +160
System.ServiceModel.Activation.AspNetCompatibilityRequirementsAttribute.Syste
m.ServiceModel.Description.IServiceBehavior.Validate(ServiceDescription descript
ion, ServiceHostBase serviceHostBase) +27
System.ServiceModel.Description.DispatcherBuilder.ValidateDescription(Service
Description description, ServiceHostBase serviceHost) +196
System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(Servi
ceDescription description, ServiceHostBase serviceHost) +102
System.ServiceModel.ServiceHostBase.InitializeRuntime() +62
System.ServiceModel.ServiceHostBase.OnBeginOpen() +29
System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +57
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +398
System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPa
th) +216
System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVi
rtualPath) +648[ServiceActivationException: The service '/Well/WellService.svc' cannot be activ
ated due to an exception during compilation. The exception message is: The serv
ice cannot be activated because it does not support ASP.NET compatibility. ASP.N
ET compatibility is enabled for this application. Turn off ASP.NET compatibility
mode in the web.config or add the AspNetCompatibilityRequirements attribute to
the service type with RequirementsMode setting as 'Allowed' or 'Required'..]
System.Runtime.AsyncResult.End(IAsyncResult result) +439
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult
result) +188
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronou
s(HttpApplication context, String routeServiceVirtualPath, Boolean flowContext,
Boolean ensureWFService) +230
System.ServiceModel.Activation.HttpHandler.ProcessRequest(HttpContext context
) +25
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep
.Execute() +478
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete
dSynchronously) +76
</pre></code></td>
</tr>
</table><br>
<hr width=100% size=1 color=silver>
<b>Version Information:</b> Microsoft .NET Framework Version:4.0.303
19; ASP.NET Version:4.0.30319.272</font>
</body>
</html>
<!--
[InvalidOperationException]: The service cannot be activated because it does not
support ASP.NET compatibility. ASP.NET compatibility is enabled for this applic
ation. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCo
mpatibilityRequirements attribute to the service type with RequirementsMode sett
ing as 'Allowed' or 'Required'.
at System.ServiceModel.Activation.HostedAspNetEnvironment.ValidateCompatibili
tyRequirements(AspNetCompatibilityRequirementsMode compatibilityMode)
at System.ServiceModel.Activation.AspNetCompatibilityRequirementsAttribute.Sy
stem.ServiceModel.Description.IServiceBehavior.Validate(ServiceDescription descr
iption, ServiceHostBase serviceHostBase)
at System.ServiceModel.Description.DispatcherBuilder.ValidateDescription(Serv
iceDescription description, ServiceHostBase serviceHost)
at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(Se
rviceDescription description, ServiceHostBase serviceHost)
at System.ServiceModel.ServiceHostBase.InitializeRuntime()
at System.ServiceModel.ServiceHostBase.OnBeginOpen()
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateServi
ce(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureService
Available(String normalizedVirtualPath)
[ServiceActivationException]: The service '/Well/WellService.svc' cannot be acti
vated due to an exception during compilation. The exception message is: The ser
vice cannot be activated because it does not support ASP.NET compatibility. ASP.
NET compatibility is enabled for this application. Turn off ASP.NET compatibilit
y mode in the web.config or add the AspNetCompatibilityRequirements attribute to
the service type with RequirementsMode setting as 'Allowed' or 'Required'..
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResu
lt result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchro
nous(HttpApplication context, String routeServiceVirtualPath, Boolean flowContex
t, Boolean ensureWFService)
at System.ServiceModel.Activation.HttpHandler.ProcessRequest(HttpContext cont
ext)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplica
tion.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& compl
etedSynchronously)
-->
--.If you would like more help, type "svcutil /?"
c:\Program Files\Microsoft Visual Studio 10.0\VC>
Friday, October 4, 2013 7:25 PM
Answers
-
Hi,
>>Error: Cannot obtain Metadata from http://localhost:1141/Well/WellService.svc
If this is a Windows (R) Communication Foundation service to which you have acce
ss, please check that you have enabled metadata publishing at the specified addr
ess. For help enabling metadata publishing, please refer to the MSDN documentat
ion at http://go.microsoft.com/fwlink/?LinkId=65455.When occur the above error, please make sure you have enabled the metadata as following:
<services> <service behaviorConfiguration="metadataBehavior" name="MyService"> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="metadataBehavior"> <serviceMetadata httpGetEnabled="true" /> </behavior> </serviceBehaviors> </behaviors>
In addition, please make sure your service references that behavior.
<service name="MyService" behaviorConfiguration="metadataBehavior">
>>The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode setting as 'Allowed' or 'Required'.
When occur the above error, please mark your service as following:
[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
Because when you set aspNetCompatibilityEnabled to true in your config file, you are stating that your services will participate in the ASP.NET pipeline; so items like ASP.NET session are available. You need to decorate your services appropriately if this is the case, since ASP.NET Compatibility Mode is set to false by default.
So by decorating your service implementation with a RequirementsMode of Allowed, you're stating a happy middle ground that basically says your service doesn't care what the aspNetCompatibility mode is (true or false). If your RequirementsMode is Required, then you need to have the config aspNetCompatibilityEnabled set to true; the opposite is true if your RequirementsMode is set to NotAllowed.Best Regards,
Amy Peng
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click HERE to participate the survey.
- Edited by Amy PengMicrosoft employee Monday, October 7, 2013 5:17 AM
- Proposed as answer by more_wagons Monday, October 7, 2013 7:00 PM
- Marked as answer by Amy PengMicrosoft employee Friday, October 11, 2013 2:26 AM
Monday, October 7, 2013 5:15 AM
All replies
-
Hi Jay,
The error message "The ser
vice cannot be activated because it does not support ASP.NET compatibility. ASP.
NET compatibility is enabled for this application. Turn off ASP.NET compatibilit
y mode in the web.config or add the AspNetCompatibilityRequirements attribute to
the service type with RequirementsMode setting as 'Allowed' or 'Required' ", says that there is a Asp.NET compatibility issue in your WCF Service.Check out this reference: http://msdn.microsoft.com/en-us/library/ms752234.aspx . it may be helpfull.
Regards
Friday, October 4, 2013 7:52 PM -
Hi,
>>Error: Cannot obtain Metadata from http://localhost:1141/Well/WellService.svc
If this is a Windows (R) Communication Foundation service to which you have acce
ss, please check that you have enabled metadata publishing at the specified addr
ess. For help enabling metadata publishing, please refer to the MSDN documentat
ion at http://go.microsoft.com/fwlink/?LinkId=65455.When occur the above error, please make sure you have enabled the metadata as following:
<services> <service behaviorConfiguration="metadataBehavior" name="MyService"> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="metadataBehavior"> <serviceMetadata httpGetEnabled="true" /> </behavior> </serviceBehaviors> </behaviors>
In addition, please make sure your service references that behavior.
<service name="MyService" behaviorConfiguration="metadataBehavior">
>>The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode setting as 'Allowed' or 'Required'.
When occur the above error, please mark your service as following:
[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
Because when you set aspNetCompatibilityEnabled to true in your config file, you are stating that your services will participate in the ASP.NET pipeline; so items like ASP.NET session are available. You need to decorate your services appropriately if this is the case, since ASP.NET Compatibility Mode is set to false by default.
So by decorating your service implementation with a RequirementsMode of Allowed, you're stating a happy middle ground that basically says your service doesn't care what the aspNetCompatibility mode is (true or false). If your RequirementsMode is Required, then you need to have the config aspNetCompatibilityEnabled set to true; the opposite is true if your RequirementsMode is set to NotAllowed.Best Regards,
Amy Peng
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click HERE to participate the survey.
- Edited by Amy PengMicrosoft employee Monday, October 7, 2013 5:17 AM
- Proposed as answer by more_wagons Monday, October 7, 2013 7:00 PM
- Marked as answer by Amy PengMicrosoft employee Friday, October 11, 2013 2:26 AM
Monday, October 7, 2013 5:15 AM