2009-02-23 4 views
0

У меня простая, если не примитивная, библиотека классов C++/CLI .NET 2.0. Он используется для переноса некоторого кода устаревшего кода на C++ для веб-службы. Следующие факты выглядят так:System.IO.FileNotFoundException при загрузке веб-службы

  1. Примитивная программа тестирования C# вызывает библиотеку классов и работает.
  2. Если библиотека классов не относится к каким-либо модулям нашей базы кода, она работает так же, как часть веб-службы. То есть я загружаю веб-службу и вызываю методы и получаю надлежащий ответ.
  3. В тот же момент я заменяю скопированный и вставленный код вызовами из наших базовых библиотек кода, веб-служба перестает загружаться. Я получаю сообщение System.IO.FileNotFoundException.

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

Я просмотрел его и предоставил некоторые разрешения для некоторых пользователей ASP.NET на моем компьютере. Я скопировал все библиотеки DLL наших библиотек в тот же каталог, где установлен веб-сервис. Я искал в журналах IIS, журналах событий и т. Д. - нет, где я мог бы найти имя модуля, который не позволяет веб-службе подниматься.

Любая помощь по этому вопросу будет принята с благодарностью.

Борис

+0

Извините, это была ложная тревога. Добавление необходимых путей к системному пути разрешило проблему. –

ответ

0

Убедитесь, что все зависимые библиотеки DLL находятся в пути (путь означает не каталог, в котором находится ваша сборка, поскольку ASP.net копирует вашу сборку во временную папку, а скорее каталог, включенный в переменную окружения System path).

+0

Да, это действительно был преступник. –

0

Какие звонки вы заменяете? Может ли исходный код изящно обрабатывать отсутствующие файлы (что может быть даже не важно), а ваш нет?

+0

Andrew, исходный код - простые процедуры обработки строк. Но глупо меня не понимало, что DLL должны быть в системном пути, так как среда выполнения ASP.NET делает копии всего и запускает ее из места копирования. –

0

Добавьте те же права на учетную запись iusr, которую вы сделали с учетной записью asp.net.

+0

Учитывая, что служба работает, если она скомпилирована по-разному, это не имеет значения. Но я все же решил проблему. Спасибо! –