Сервер SessionState не работает в WebForm внутри приложения MVC

У меня есть приложение MVC4, которое использует элемент управления ReportViewer на странице aspx внутри iframe в моем представлении бритвы. Я последовал этому ответу здесь: https://stackoverflow.com/a/11055132/876511.

Ну, это работало нормально на локальном хосте, но не при развертывании на сервере.

Первая ошибка, которую я получил, была решена путем установки для свойства «Копировать локально» значения true в справочнике Microsoft.ReportViewer.WebForms.

Затем я получил эту ошибку на сервере: «Не удалось загрузить файл или сборку Microsoft.ReportViewer.Common». Для этого я вручную скопировал dll из "C:\windows\assembly\GAC_MSIL\Microsoft.ReportViewer.Common\11.0.0.0__89845dcd8080cc91" в каталог bin на сервере.

Но теперь я получаю эту ошибку, которую я не могу понять:

[Win32Exception (0x80004005): сетевой путь не найден]

[SqlException (0x80131904): ошибка, связанная с сетью или конкретным экземпляром, при установлении соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 — не удалось открыть соединение с SQL Server)] System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, логическое значение allowCreate, логическое значение onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal & connection) + 414. +83 System.Data.SqlClient.SqlConnection.Open() +96
System.Web.SessionState.SqlStateConnection..ctor(SqlPartitionInfo sqlPartitionInfo, TimeSpan retryInterval) +110

[HttpException (0x80004005): невозможно подключиться к базе данных сеансов SQL Server.]
System.Web.SessionState.SqlSessionStateStore.ThrowSqlConnectionException(SqlConnection conn, Exception e) +235
System.Web.SessionState.SqlStateConnection..ctor (SqlPartitionInfo sqlPartitionInfo, TimeSpan retryInterval) +944
System.Web.SessionState.SqlSessionStateStore.GetConnection(String id, Boolean& usePooling) +231
System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +199
System.Web.SessionState.SessionStateModule.OnReleaseState(Источник объекта, EventArgs eventArgs) +798
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute( ) +136 System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логическое значение и выполнено синхронно) +69

Какой сетевой путь? SQL-сервер? Остальное приложение работает нормально.

Пожалуйста, помогите мне, я застрял здесь на несколько дней, и у меня больше нет идей.

ИЗМЕНИТЬ:

Нашел где ошибка. В моем web.config.release у меня есть это:

<sessionState mode="SQLServer" sqlConnectionString="Data Source=SQLSERVER;User ID=ASPState;Password=XXXXXXX" timeout="120" xdt:Transform="Replace"/>

Когда я комментирую, reportViewer работает, иначе выдает сетевую ошибку. Что-то не так, возможно со строкой подключения, не знаю что.

EDIT2: Строка Conn подходит, иначе она не будет работать во всем приложении.

Моя новая догадка заключается в том, что это смесь MVC и веб-форм... MVC нормально подключается к серверу состояния сеанса, но моя веб-форма не работает. Почему?


person Fraposo    schedule 05.07.2013    source источник


Ответы (1)


пытаться

ReportViewerRSFReports.ProcessingMode = ProcessingMode.Remote;
ReportViewerRSFReports.ServerReport.ReportServerCredentials = new CustomReportCredentials("user", "pass", "domain");
ReportViewerRSFReports.ServerReport.ReportServerUrl = new Uri("http://<Server Name>/ReportServer");
ReportViewerRSFReports.ServerReport.ReportPath = "/MYAPP/test";
ReportViewerRSFReports.ServerReport.Refresh();

Замените reportserver.mydomain своим сервером отчетов.

Для устранения ошибок я обычно получаю URL-адрес сервера отчетов и путь отчета из окон вывода BID во время развертывания отчета.

person StackTrace    schedule 05.07.2013
comment
Это тоже не работает. Ошибка возникает перед этими строками. Он пытается подключиться к чему-то, прежде чем я настрою сервер отчетов. Я пробовал вообще не устанавливать сервер и все равно получаю ту же ошибку на сервере deply и другую ошибку на локальном хосте. - person Fraposo; 05.07.2013