alexvw Ответов: 1

Не удалось найти имя пространства имен "signedxml"


Привет,

Нам интересно, что мы сделали, чтобы получить такое сообщение об ошибке.
Línea 54:             doc.LoadXml(documento);
Línea 55:             // Create a SignedXml object.
Línea 56:             SignedXml signedXml = new SignedXml(doc);
Línea 57:             // Add the key to the SignedXml document.  'key'
Línea 58:             signedXml.SigningKey = certificado.PrivateKey;

Проект действительно имеет ссылку на систему.Безопасность, и пространство имен также упоминается в классе:
using System.Security.Cryptography.XML;


Подробное сообщение компилятора идет (снова и снова) так с каждым отдельным файлом внутри
"HEFESTO...."
пространство имен

warning CS0436: The type 'HEFESTO.CESION.LIB.Proxys.Certificacion.getSeedCompletedEventHandler' in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\c8a68465\8993e0e1\App_Code.pobkvm1q.10.cs' conflicts with the imported type 'HEFESTO.CESION.LIB.Proxys.Certificacion.getSeedCompletedEventHandler' in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\c8a68465\8993e0e1\assembly\dl3\7d1ae1d5\70825170_0bdfd201\CesionesRoot.DLL'. Using the type defined in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\c8a68465\8993e0e1\App_Code.pobkvm1q.10.cs'


Что я уже пробовал:

Мы удалили все файлы из них и импортировали свежие копии из исходного проекта,который работает.

Удалить все содержимое ASP.NET папка временных файлов.

Перестроил весь проект.

Извлеките и перезагрузите систему.Ссылка на безопасность.

Если мы закомментируем все три строки, где мы намереваемся создать объект SignedXml, ошибка исчезнет, и проект будет запущен. к сожалению, мы должны использовать объекты SignedXml.

Любая помощь очень нужна и глубоко ценится. Спасибо.

Karthik_Mahalingam

попробуйте использовать пространство имен " System.Безопасность.Криптография.В формате XML.Метода signedxml"

alexvw

Здравствуйте, Картик, спасибо за ваше предложение; к сожалению, это не имеет никакого значения. После более подробного чтения я наткнулся на кое-что, что решило эту проблему. Я опубликую его в качестве ответа через несколько минут.

Ура!

Karthik_Mahalingam

крутой.

1 Ответов

Рейтинг:
5

alexvw

Привет каждому телу.

Прочитав еще немного и попробовав все, что мне попадалось. Я нашел статья это давало столь необходимый свет в конце туннеля.

Я знал, что предупреждающее сообщение, которое я получал от компилятора (во время выполнения) о пространстве имен, не имело к нему никакого отношения, поскольку проект будет компилироваться и запускаться до тех пор, пока я не попытаюсь создать экземпляр объекта SignedXml. Проблема должна была быть изолирована от системы.Библиотека dll безопасности.

В конце концов, в статье говорится, что определенная ошибка "это всегда происходило при разработке веб-приложения в Visual Studio 2005 и желании использовать код, который имеет дело с сертификатамиПоскольку терять мне было нечего, я решил попробовать.

Решение
Измените тег "компиляция" в нашем файле Web. config, чтобы включить следующее:

<assemblies>
        <add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>


в конце концов, это выглядит так (и работает!!!):

<compilation debug="true" targetFramework="4.6.1">
      <assemblies>
        <add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
</compilation>


Больше не надо
"warning CS0436....."
Ура!


Karthik_Mahalingam

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