У нас есть проект ASP.NET. Проект устанавливается через InstallShield. У нас есть тестовый метод, который бросает SoapException и сравнивает его сообщение:SoapException имеет то же сообщение, но в разных формах
internal static string ExceptionMsgCheckForConflicts = "Server was unable to process request. ---> Rethrow exception, look at inner exception ---> System.ArgumentException ---> Item is invalid";
internal static string ErrorMsgCheckForConflictsInvalidException = "Exception should start with 'Server was unable to process request. ---> Rethrow exception, look at inner exception ---> System.ArgumentException ---> Item is invalid'";
[Test]
public void ConflictDetectorItemNotAnItemNode()
{
Assert.Throws<SoapException>(() =>
{
try
{
//Some code that throws SoapException
}
catch (SoapException ex)
{
Assert.IsTrue(ex.Message.StartsWith(ExceptionMsgCheckForConflicts, StringComparison.OrdinalIgnoreCase), ErrorMsgCheckForConflictsInvalidException);
throw;
}
});
}
код работает довольно хорошо. Но мы решили запустить этот тест на установленной версии проекта. Проблема заключается в том, что в этом случае исключение с сообщением:
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Exception: Rethrow exception, look at inner exception ---> System.ArgumentException: Item is invalid
На самом деле это одно и то же сообщение, но содержит имена исключений. Я и мой босс понятия не имею, почему это происходит.