Ошибка при публикации приложения .NET c # - PullRequest
1 голос
/ 11 сентября 2009

Прошло два дня, и я не смог заставить это приложение работать на хост-компьютере. Это приложение находится в подкаталоге и написано на C #, другое приложение - C #. Это отлично работает здесь, на моем компьютере для разработки. Я пробовал следующее.

  1. 1. Я внес изменения в файл web.config, чтобы он не конфликтовал. (вроде бы нормально)
  2. Когда я создавал приложение было создано с версией 3.5. Я понижаю до 2.0
  3. Я перекомпилировал, убедившись, что файл .aspx и файл .cs находятся в каталоге. В чем я скучаю?

Любые СОВЕТЫ / Комментарии или вопросы, пожалуйста, дайте мне знать. Это расстраивает. Ниже ссылка и ошибка, которую я получаю

http://www.martinesexpress -inc.com / PhoneControl / Default.aspx

Ошибка сервера в «/» приложении. Parser Error Описание: Ошибка произошло во время разбора ресурс, необходимый для обслуживания этого запрос. Пожалуйста, просмотрите следующее конкретные подробности ошибки разбора и измените свой исходный файл соответствующим образом.

Сообщение об ошибке парсера: не удалось загрузить введите 'ElLogPh._Default'.

Ошибка источника:

Строка 1: <% @ Page Language = "C #" AutoEventWireup = "истина" CodeBehind = "Default.aspx.cs" Inherits = "ElLogPh._Default"%>
Строка 2:
Строка 3: Исходный файл: /PhoneControl/Default.aspx Строка: 1 Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.3053; ASP.NET Версия: 2.0.50727.3053

Ответы [ 3 ]

2 голосов
/ 11 сентября 2009

По сути, в двух словах, dll, которая скомпилирована для вас (и содержит класс 'ElLogPh._Default'), не найдена. Есть несколько причин для этого, но вот первое, что приходит на ум, и наиболее вероятное:

Первый вопрос: знаете ли вы, как проект веб-сайта Visual Studio соотносится с приложением IIS? Это неполное, но самое простое описание первой мысли, которая приходит в голову.

Когда вы создаете проект веб-сайта в Visual Studio и создаете его (или публикуете его, так как процесс публикации VS включает в себя его сборку вначале), весь код позади компилируется в DLL, которые помещаются в каталог "bin".

Когда вы публикуете это на веб-сайте, приложение IIS имеет один и только один каталог bin. Все каталоги bin во вложенных папках не считаются действительными каталогами bin.

Итак, если вы создали его как другой проект и просто скопировали его в исходную папку, ваша структура будет выглядеть следующим образом:

\ Родитель

\ Родитель \ Bin

\ Родитель \ YourNewApp \

\ Родитель \ YourNewApp \ Bin

Я думаю, что класс ElLogPh._Default находится в dll внутри \ Parent \ YourNewApp \ Bin.

Решение этого вопроса - обратиться к диспетчеру IIS и сделать \ Parent \ YourNewApp приложением.

Если мне кажется, что я на правильном пути, инструкции по созданию приложения в IIS находятся здесь: http://www.affiliatewiz.com/support/appstartpoint.asp

2 голосов
/ 11 сентября 2009

Вы публикуете в подкаталоге (PhoneControl) корня приложения (http://www.martinesexpress -inc.com / ). Если PhoneControl не является приложением в IIS, он не будет искать сборки в http://www.martinesexpress -inc.com / PhoneControl / bin , но http://www.martinesexpress -inc.com / bin .

0 голосов
/ 11 сентября 2009

Не знаю, поможет ли это, но вы работаете в режиме релиза?

...