2012-06-13 4 views
0

I сайт программы с MVC 3.0, которая использует EntityFrame работы 4.0, контроллер уровня у меня есть это:
Публикация MVC 3.0 Сайт в IIS 7.0

public ViewResult Index() 
    { 
    return View(_DatabaseSMSEntities.People.ToList()); 
    } 

И View Layer Я использовал Telerik Сетка:

<% Html.Telerik().Grid<ProjectWebsite.Models.People>(Model) 
        .Name("People") 
        .Columns(columns => 
        { 
         columns.Bound(o => o.PersonID).Format(
         "<a href='../WebPage/PersonSMSPage.aspx?personID=" + "{0}" + @"' <br/>runat=""server"">" + 
         "<img src='../../Content/themes/base/images/RegisterSMS.png' <br/>alt='{0}' />"<br/> 
         );           

        }) 
        .RowAction(row => 
        { 
         if (row.Index == 0) 
         { row.DetailRow.Expanded = false; } 
        })     
        .Render();%> 

Я опубликовал его в IIS 7.0. Но это не работает.

<connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 
    <add name="DatabaseSMSEntities" connectionString="metadata=res://*/Models.ModelDatabaseSMS.csdl|res://*/Models.ModelDatabaseSMS.ssdl|res://*/Models.ModelDatabaseSMS.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DatabaseSMS.mdf;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 
    <add name="cn1" connectionString="data source=~/ErrorsLog/Errors.db" /> 
    </connectionStrings> 

Во-первых, я опубликовал его в D: \ Pardis, Но я получил ошибку:

CREATE DATABASE permission denied in database 'master'. 
    An attempt to attach an auto-named database for file D:\Pardis\App_Data\DatabaseSMS.mdf failed. A database with the same name 
exists, or specified file cannot be opened, or it is located on UNC share. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: CREATE DATABASE permission denied in database 'master'. 
An attempt to attach an auto-named database for file D:\Pardis\App_Data\DatabaseSMS.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. 

Source Error: 


Line 20:   public ViewResult Index() 
Line 21:   { 
Line 22:    return View(_DatabaseSMSEntities.People.ToList()); 
Line 23:   } 
Line 24: 

Затем я опубликовал в Inetup, но я получил сообщение об ошибке. У меня нет пользователя ASPNET в списке пользователей, чтобы установить защиту.

+0

Так что же не работает? Публикация или опубликованный сайт? – LukeP

+0

Я нахожу, что должен добавить «User Instance = True;», но он работает иногда и не работает в другое время –

ответ

0

Там может быть две проблемы

  1. Вы забыли скопировать файл базы данных (если вы используете SQL Server Compact)
  2. Вы создаете новую базу данных с помощью кода. Вы не должны создавать базы данных в своей среде развертывания. Это, вероятно, может произойти, если вы используете

    System.Data.Entity.Database.SetInitializer (некоторые стратегии)

Смежные вопросы