Добрый день, Все.
Столкнулся с такой проблемой:
Пишу некоторую сборку на C#(допустим с Namespace ClassLibrary1 и именем единственного класса Class1),которая имеет единственный метод HelloWorld()
namespace ClassLibrary1
{
public class Class1
{
public string HelloWorld()
{
return "Hello, World";
}
}
}
затем создаю веб-приложение ASP.Net 2.0 с единственной страничкой default.aspx, на которой размещаю тег <object>
<OBJECT id="hello" classid="ClassLibrary1.dll#ClassLibrary1.Class1" width="0" height="0" VIEWASTEXT>
</OBJECT>
Сборку кладу в ту же папку, где лежит default.aspx (ну и кстати в IIS настраиваю виртуальный каталог, который смотрит туда же).
Затем пишу простой клиентский скрипт:
<script language="jscript">
alert(hello.HelloWorld())
</script>
ну и наконец то добрались собственно до самого вопроса.
Если приведенный выше код скомпилировать под 2.0, то скрипт выбрасывает alert с текстом "undefined". Если же я этот же код компилирую в сборку под .Net Framework 1.1, то alert чудесным образом выбрасывает "Hello, World".
В обоих случаях сборка есть в папке "Windows\assembly\Download". Создается впечатление, что сборку, скомпилированную под .Net 2.0, фреймворк просто зарубает и не дает ей пользоваться, возможно нужно поковыряться в безопасности? Я дал FullTrust на все site на моей машине (где находится и приложение и скачиваемая сборка)
Может кто-нибудь знает что такого изменилось в asp.net 2.0, что я не могу использовать скачанную сборку на клиенте?
P.S. Перед каждым экспериментом очищаю GAC (для верности с помощью "gacutil /cdl").
Прошу помощи в этом вопросе...
Посмотри в Local Settings\Temporary Internet Files файл с ошибками загрузки.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, mclabman, Вы писали:
M>Посмотри в Local Settings\Temporary Internet Files файл с ошибками загрузки.
M>
данное сообщение получено с www.gotdotnet.ru
M>ссылка на оригинальное сообщение
На самом деле все таки проблема оказалась в безопасности. В AssemblyInfo.cs должны быть такие строчки:
[assembly: ComVisible(true)]
[assembly: System.Security.AllowPartiallyTrustedCallers()]
И тогда все замечательно