Доступ к sql compact 4 db не разрешен в ASP.NET MVC 3 Scaffolding - PullRequest
1 голос
/ 21 сентября 2011

Это немного странно. Я делаю сначала разработку кода MVC 3 с использованием SQL Compact 4. Все работает нормально, но у меня возникают проблемы, когда я пытаюсь создать новый контроллер. Я запускаю диалоговое окно нового контроллера и выбираю свою сущность и текст данных (оба из которых находятся в отдельной сборке в одном и том же решении) и получаю следующую ошибку:

Невозможно получить метаданные для 'MyNamespace.MyClassName'. Доступ к файлу базы данных не разрешен. [1884, имя файла = C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ EntityContext.sdf, SeCreateFile]

В данный момент этот файл не существует на диске - файл EntityContext.sdf находится в моей папке App_Data. Я не уверен, пытается ли он создать этот файл (и если да, то почему?), Но если это так, я не вошел в систему как администратор, поэтому у него не будет разрешений. В таком случае мне нужно определить разницу рабочей папки или что-то?

Я пробовал запустить его как администратор, и он работает, поэтому он определенно пытается создать файл в моем каталоге Program Files , где-то должна быть настройка для временных файлов?

Любая помощь будет великолепна:)

Ответы [ 3 ]

0 голосов
/ 18 апреля 2013

Я также столкнулся с той же проблемой, когда пытался экспортировать скрипт SQL CE db с количеством утилит. Получена ошибка «Доступ к файлу базы данных не разрешен». Затем я только что подключился к этому db-файлу из VS2010, скопировал строку подключения и ... это сработало! :)

0 голосов
/ 14 августа 2013

Я столкнулся с этой проблемой при использовании T4Scaffolding. Я обошел проблему, установив пакет nuget MVCScaffolding и использовал шаблон «MVCScaffolding: Контроллер с действием чтения / записи и представлениями с использованием кода доступа к данным EF». Он производит аналогичные действия контроллера и представления. Мне не удалось удалить и переустановить пакет nuget T4Scaffolding, чтобы проверить, была ли это ошибка или поврежденная установка.

0 голосов
/ 14 ноября 2011

Вы нашли ответ на вопрос?У меня возникла та же проблема, но я решил ее с помощью преобразований развертывания ...

В Web.Config Я использовал полный путь к SDF:

<configuration>
    <connectionStrings>
        <add 
          name="DBContext" 
          connectionString="Data Source=C:\full-path\DBContext.sdf" 
          providerName="System.Data.SqlServerCe.4.0" />
...

В Web.Release.config Я заменяю атрибут connectionString ...

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add 
      name="DBContext" 
      connectionString="Data Source=\DBContext.sdf" 
      xdt:Transform="SetAttributes" 
      xdt:Locator="Match(name)"/>
  </connectionStrings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
</configuration>

После выпуска разверните правильный "| DataDirectory |"вместо "C: \ full-path \" выполняется настройка.

Хотелось бы исправить первоначальную проблему !!

PK: -)

...