[英]Exclude services in RIA Services client code generation
我有一個使用RIA Services 1.0 SP1的Silverlight 4應用程序。
在承載Silverlight應用程序的Web應用程序中,我有一些RIA服務和一個供其他使用者使用的純WCF服務(不是Silverlight應用程序)。
RIA Services正在嘗試(但失敗)在Silverlight應用程序中生成客戶端代理代碼以調用WCF服務。 我不需要從Silverlight調用該服務。
如何防止RIA Services為該服務生成客戶端代碼?
我有一個可以用來忽略該服務的屬性嗎?
編輯
我以為是RIA Services嘗試生成代理,但是我不確定。 這是更多信息:
我有以下編譯警告:
服務'MyNamespace.MyWcfService'的客戶端代理生成失敗:錯誤:地址'http:// localhost / Service'的端點'WSHttpBinding_SurveyCentreWcfService'與Silverlight 4不兼容。正在跳過...
我沒有在Silverlight應用程序中手動添加任何服務引用,但是在項目屬性中設置了WCF RIA服務鏈接。
我的服務類別如下:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(Namespace = "http://www.xxx.com/services/")]
public class MyWcfService
{
...
}
據我所知,Ria僅從DomainService類生成代碼。 您的WCF服務是從DomainService繼承的嗎?
聽起來像是Silverlight方面的代理代碼生成器。 RIA服務不需要Web參考。 如果Silverlight項目中有Web參考,請將其刪除。
另外,您可以在build.log文件中看到哪些代理生成工具正在查看哪些文件。 很難解釋,但可能有助於解決您的問題。
可能性很小,但請確保未在Silverlight應用程序中的任何文件上設置自定義工具。
您可能希望使用DomainServiceHostFactory來限制哪些請求可以啟動哪些服務,以下示例:
public class RestrictedServiceHost : DomainServiceHostFactory
{
private static List<string> _allowedSchemes;
static RestrictedServiceHost ()
{
RestrictedProtocolServiceHost._allowedSchemes = new List<string>();
RestrictedProtocolServiceHost._allowedSchemes.Add( Uri.UriSchemeHttp );
RestrictedProtocolServiceHost._allowedSchemes.Add( Uri.UriSchemeHttps );
}
protected override ServiceHost CreateServiceHost ( Type serviceType, Uri[] baseAddresses )
{
baseAddresses = baseAddresses.Where( uri => RestrictedProtocolServiceHost._allowedSchemes.Contains( uri.Scheme ) ).ToArray();
return base.CreateServiceHost( serviceType, baseAddresses );
}
}
如果您的web.config如:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
<serviceActivations>
<add service="RIA.FooDomainService"
relativeAddress="Services/FooProject-FooDomainService.svc"
factory="YourWebProject.RestrictedProtocolServiceHost"/>
</serviceActivations>
</serviceHostingEnvironment>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.