我有一個項目有RIAService,實體框架引用了我的Silvelright項目。所以當我建立項目,建立RIA服務項目的DLL,並把它放在Silverlight項目的Bin/Debug文件夾中。在Window服務中使用RIA服務項目的DLL
域名服務功能是類似下面
[EnableClientAccess()]
public partial class MyClassDomainService : LinqToEntitiesDomainService<MyDatabaseEntities>
{
[Invoke]
public void MyFunction(int Para1, string Para2, int Para3, string Para4)
{
//mycode
}
}
現在我已經建立這個項目簡介和複製此RIAService.dll和其他需要的DLL到我的另一個項目是窗口服務項目。
現在在窗口服務中,我創建了此域服務的對象,如下面的timerQlinkRequest_Elapsed()函數中所示。
private void timerQ_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
MyClassDomainContext objcontext = new MyClassDomainContext();
objcontext.MyFunction(1, "ADD", 1234, "Vehicle");
}
catch (Exception ex)
{
LogMessage("Error : StackTrace : " + ex.StackTrace);
}
}
安裝和啓動窗口服務後,我收到以下錯誤ex.stackTrace日誌filem如下
Error : StackTrace : at MS.Internal.JoltHelper.get_Context()
at MS.Internal.XcpImports.Application_GetCurrent(IntPtr& pApp)
at System.Windows.Application.get_Current()
at System.ServiceModel.DomainServices.Client.WebDomainClient`1.ComposeAbsoluteServiceUri()
at System.ServiceModel.DomainServices.Client.WebDomainClient`1..ctor(Uri serviceUri)
at RIAService.Web.Service.QLink.MyClassDomainContext..ctor()
at MywindowService.MyService1.timerQ_Elapsed(Object sender, ElapsedEventArgs e)
所以我的主要困惑是,我可以這樣做?如果是,那麼我哪裏出錯?
請幫幫我。
等待回覆。
你是否試圖從多個項目使用相同的ria服務?這兩個項目在相同的解決方案中是否存在任何限制? – 2012-03-28 14:55:38
兩者都是不同的解決方案。一個是窗口服務解決方案和其他解決方案有RIAService項目和Silverlight項目以及Silverlight.Web項目。所以在構建RIAService.dll後,我複製粘貼,然後將其放到一個文件夾中,並將其用於Window服務項目。 – 2012-03-28 17:10:53