У меня ELMAH работает на моем (Cassini) сервере разработки, и я был очень доволен этим, но теперь, когда я пытаюсь перенести все на свой рабочий сервер (IIS7), медовый месяц выглядит как законченный.
Я преодолел «уловку» с IIS7 , которая, честно говоря, могла бы быть лучше выделена в документации, и если бы я просто использовал журнал в памяти, то он работал.
Однако я пытаюсь заставить его использовать журнал SQL Server (как я это делаю в своей системе разработки), и я получаю сообщение об ошибке:
Отказано в разрешении EXECUTE для объекта ELMAH_GetErrorsXml
Ну хорошо. Я знаю, как предоставлять разрешения для базы данных, но я действительно изо всех сил пытаюсь понять, какому пользователю и каким хранилищам процедур / таблиц мне нужно предоставить доступ.
Меня по-настоящему смущает то, что мне не нужно было делать ничего подобного, чтобы заставить его работать на моем сервере разработки. Единственное различие, которое я вижу, заключается в том, что на моем сервере разработки он подключается как NT AUTHORITY \ IUSR, тогда как на моем рабочем сервере он подключается как NT AUTHORITY \ NETWORK SERVICE. (Это просто использование доверенного соединения, поэтому я явно не настроил его для этого - я предполагаю, что это связано с веб-сервером). ОБНОВЛЕНИЕ : С тех пор я установил, что, поскольку я использую Cassini, он фактически входил в систему как я (администратор), а не как IUSR, что объясняет, почему я не получил никаких проблем с разрешениями.
На моем сервере разработки учетная запись IUSR является участником общедоступной роли базы данных и имеет доступ к необходимой базе данных (снова как «общедоступная»). Нет явного предоставления разрешений на уровне объекта. [См. Обновление выше - это не имеет значения].
На моем производственном сервере я добавил NETWORK SERVICE точно таким же образом (роль общедоступной базы данных, явный доступ к базе данных как «общедоступная»). Тем не менее, я получаю эту ошибку разрешения. Зачем?!! [См. Обновление выше - единственная причина, по которой я не не получаю ошибку разрешения, заключается в том, что я работаю от имени администратора].
И, конечно, если тот факт, что он работает локально, является просто "удачей", мне нужно будет знать, к каким SP / таблицам предоставить доступ. Я предполагаю, что все 3 SP и не таблицы, но было бы хорошо (снова) увидеть некоторую документацию, которая делает это явным.