Профиль Asp.net в отдельной сборке - PullRequest
1 голос
/ 01 июня 2010

У меня есть веб-приложение, которое использует членство и профили. Я успешно использовал расширение WebProfileBuilder, поэтому мой класс профиля создан правильно и работает нормально.

Однако после нового запроса моего клиента мне теперь нужно переместить эту часть управления профилями в другую сборку (чтобы я мог получить информацию о профиле в службе Windows, работающей на той же машине).

Я создал новую сборку, переместил сгенерированный файл профиля и попытался использовать его из другой сборки, но безуспешно. Я всегда получаю SettingsPropertyNotFoundException. Я думаю, что система профилей не знает, где найти информацию о своем соединении, поэтому я попытался добавить строку соединения и провайдера в app.config этой сборки, но, похоже, это не сработало.

Чего мне не хватает? Можно ли это сделать?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 01 июня 2010

Хорошо, я обнаружил, что не так ... Благодаря этому сообщению в блоге:

http://fredrik.nsquared2.com/viewpost.aspx?postid=244&showfeedback=true

Единственное, что мне нужно было сделать, это добавить applicationName="/" в конфигурацию моего провайдера, в app.config. (которое является именем приложения, можно найти внутри таблицы aspnet_Applications в БД.

<configuration>

  <connectionStrings>
    <add
        name="MyConnectionString"
        connectionString="Data Source=...;Initial Catalog=...;User ID=...;Password=..."
        providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <profile
      enabled="true"
      defaultProvider="Sql2008ProfileProvider">
      <properties>
        <add name="UserLevel" type="integer"/>
        <add name="value1" type="string" />
        <add name="value2" type="string"  />
        <add name="value3" type="string" />
        <add name="value4" type="string"/>
      </properties>

      <providers>
        <clear/>
        <add
            name="Sql2008ProfileProvider"
            type="System.Web.Profile.SqlProfileProvider"
            connectionStringName="MyConnectionString"
            applicationName="/"
            />
      </providers>

    </profile>
  </system.web>

</configuration>
0 голосов
/ 01 июня 2010

У меня неприятное подозрение, что ваш файл APP.Config не будет выбран веб-приложением; вы сохранили настройки в файле Web.Config?

Я обнаружил, что app.config работает только с такой сборкой, когда используется NUnit или аналогичный.

...