2012-03-19 173 views
0

我有一个Clustered Windows Hosting站点,当前托管使用MYSQL支持数据库的MVC Web应用程序。WCF数据服务

我一直在努力,在过去三个星期做的是举办一个WCF数据服务公开数据库的网站在后面将在Windows机器上安装一个WPF应用程序被消耗。

我按照每一个教程,我所遇到的。他们都没有工作,他们都给出了使用http://localhost作为调用Web服务的位置的例子。

我有限的经验与Asp.Net和MVC但在发布之前的工作网站,我提到目前正在运行一个全功能的MVC Web应用程序。我也有广泛的.Net知识和经验,但是,对于我来说,根本无法理解这一点。

我已经看到了一个集群托管方案中被托管的WCF网站没有真正的例子。几乎所有我看到使用IIS提到的例子,但我没有访问我的托管IIS。

任何人都可以点我在正确的方向的教程,这将允许我使用WCF服务,还是我完全找错了树?

好吧,更新:经过多次试验,我碰到下面的属性,并用它 [System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults =真)]

这给了我这似乎表明数据错误服务试图访问我的本地硬盘上的文件,表明我曾冒充某种参考。我也意识到我没有设置成员资格配置文件,因此再次开始报废我的数据服务。

首先我加入了天冬氨酸会员卡,则实体模型,设置权限,并再次使用该属性,虽然寻找更多的希望还是得到了下面的错误。

异常消息为“指定的存储提供不能在配置中找到,或者是无效的。”。查看服务器日志获取更多详细信的异常堆栈跟踪是:

在System.Data.EntityClient.EntityConnection.GetFactory(字符串providerString)在System.Data.EntityClient.EntityConnection.ChangeConnectionString(字符串newConnectionString)在System.Data.EntityClient.EntityConnection..ctor(串的connectionString)在System.Data.Objects.ObjectContext.CreateEntityConnection(串的connectionString)在System.Data.Objects.ObjectContext..ctor(串的connectionString,串defaultContainerName)在RotaSolutions.WCF.Models.rotasolu_crmEntities..ctor(c)中:\用户\保罗\收存箱\项目\ WCF \ RotaSolutions.WCF \ RotaSolutions.WCF \模型\ CRMModel.Designer.cs:在System.Data.Services.DataService管线34以invoke_constructor()1.CreateDataSource() at System.Data.Services.DataService 1.CreateDataSourceInstance()在系统.Data.Services.DataService 1.CreateProvider() at System.Data.Services.DataService 1.HandleRequest()在System.Data.Services.DataService`1.ProcessRequest ForMessage(流消息体)在SyncInvokeProcessRequestForMessage(对象,对象[],对象[])中的System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象实例,对象[]输入,对象[] &输出)在System.ServiceModel.Dispatcher。 DispatchOperationRuntime.InvokeBegin(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime。ProcessMessage31(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc & RPC )在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc & RPC)在System.ServiceModel.Dispatcher.MessageRpc.Process(布尔isOperationContextSet)

虽然,仍然无法使用它。这给了我比以前更多的希望。再次,如果有人有任何建议,我会很高兴收到他们。

+0

不知道这是否适用于你的情况(与群集),但你有没有尝试自托管的WCF数据服务?您可以尝试编写简单的控制台应用程序作为概念证明。 – Tim 2012-03-20 03:08:09

+0

这是我的知识有点朦胧。通过自托管,你的意思是说,创建一个空的MVC应用程序与一个WCF数据服务,并使用它?如果是这样,是的,我有。我有一种可怕的感觉,那就是我在这里错过了一个小小的点,而我无法看到它的存在。 我已经能够完成这项工作的唯一方法是遵循经典计算器教程。这是我的WPF项目实际上可以看到WCF服务的唯一方式。每次我尝试使用WCF数据服务时,都会出现错误。 – 2012-03-20 16:18:38

+0

好的。我所做的就是这个。 创建了一个空MVC4项目 增加了一个实体数据模型称为CRMModel 添加WCF数据服务称为CRMService 我加上了InitializeService方法 按下F5的权限,并在本地似乎很好地工作。 然后我将这个项目添加到我的WPF项目中,名为CRM.WPF ,并发现了该服务。 然后,我发布了服务http://services.myservice.com从WPF中删除了MVC项目,并试图通过此Uri访问代码中的服务 Uri uri = new Uri(“http://services.myservice .com/CRMService.svc /“) 这总是给出错误。 – 2012-03-21 08:29:24

回答

0

我已经设法解决了这个问题。我会发布完整的答案,但不能由于编辑器的格式化问题,所以我不得不做短版。

基本上,我删除了我使用的MySQL版本,下载了最新版本并安装并添加了该引用。

我还向web.config中添加了一个链接到MySQL参考的DbProviderFactories。就像我说的,我会发布代码,但这个格式化系统不断拒绝我的尝试。