Web services 在web服务中首先使用代码时出错;System.Data.ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串;
我先用代码。一切正常(插入、更新、选择)一切都经过测试。当我尝试使用web服务时,问题就出现了。我收到错误“System.Data.ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串。”。查看内部异常,我得到一条消息“无法确定存储版本;需要有效的存储连接或版本提示。” web服务代码:Web services 在web服务中首先使用代码时出错;System.Data.ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串;,web-services,code-first,Web Services,Code First,我先用代码。一切正常(插入、更新、选择)一切都经过测试。当我尝试使用web服务时,问题就出现了。我收到错误“System.Data.ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串。”。查看内部异常,我得到一条消息“无法确定存储版本;需要有效的存储连接或版本提示。” web服务代码: /// <summary> /// Summary description for UserServices /// </
/// <summary>
/// Summary description for UserServices
/// </summary>
[WebService(Namespace = "http://localhost:3955/WebServices/UserServices")]
//[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class UserServices : System.Web.Services.WebService
{
[WebMethod]
public bool LoginControlPanelUser(string user, string password)
{
if(Membership.ValidateUser(user, password))
{
return DbUsersDAO.HasAuthenticationType(user, password);
}
return false;
}
}
上下文类:
public VirtusCloudCoreContext()
{
Database.SetInitializer<VirtusCloudCoreContext>(new VirtusCloudCoreContextInitializer());
this.Database.Connection.ConnectionString = "Data Source=localhost\SQLEXPRESS;Database=DatabaseName;User Id=******;Password=*******;" ;
}
公共VirtusCloudCoreContext()
{
SetInitializer(新的VirtusCloudCoreContextInitializer());
this.Database.Connection.ConnectionString=“数据源=localhost\SQLEXPRESS;数据库=DatabaseName;用户Id=****;密码=*******;”;
}
当我尝试获取用户时,我得到异常。。。。有什么想法吗?当连接字符串出错时,经常会发生此错误,但我认为在您的情况下,这是因为您试图手动设置连接字符串 尝试使上下文从DbContext继承,并在构造函数中获取一个连接字符串,该字符串将传递给基构造函数,如下所示:
public class VirtualCloudCoreContext : DbContext {
public VirtualCloudCoreContext(string connectionString)
: base (connectionString) {
}
}
我在VS2012 Web项目中使用了一个新的DB生成的EDMX,它有一个单独的类文件——两个项目都安装了EF 6.1.1。即使我使用的是SQL 2012,我也必须直接编辑EDMX文件,并从2012年起将其更改为
ProviderManifestToken=“2008”
不确定是否与Telerik Grid/EntityDataSource相关。更多提及此问题,但与VS2013相关
public class VirtualCloudCoreContext : DbContext {
public VirtualCloudCoreContext(string connectionString)
: base (connectionString) {
}
}