Не удалось загрузить тип «System.ServiceModel.Web.WebOperationContext» из сборки «System.ServiceModel.Web».C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Не удалось загрузить тип «System.ServiceModel.Web.WebOperationContext» из сборки «System.ServiceModel.Web».

Сообщение Anonymous »

В настоящее время я пишу модульные тесты для приложения WCF. В реализации ServiceContract он возвращает ответ 401 в случае неправильных учетных данных. См. код ниже:

Код: Выделить всё

public GenericResponse GetAuthenticationToken()
{
try
{
var authToken = Task.Run(async () =>
{
var token = await _authenticationService.AuthenticationUser();
return token;
});

return new GenericResponse()
{
ErrorMessage = string.Empty,
HasError = false,
ResponseObject = authToken.Result
};
}
catch (Exception ex) when (ex.InnerException.Message.StartsWith("Invalid credentials passed"))
{
// Set the HTTP status code
WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Unauthorized;

return new GenericResponse
{
HasError = true,
ErrorMessage = "Invalid Credentials",
ResponseObject = ex.InnerException.Message
};
}
catch (Exception ex)
{
var fault = new GenericErrorResponse
{
ErrorMessage = $"An unknown error occured while authenticating",
ErrorCode = 500,
Details = $"An error occured while getting authentication token: {ex.Message}. {ex.InnerException?.Message ?? string.Empty}"
};

// Throw FaultException with custom fault
throw new FaultException(fault, new FaultReason(fault.ErrorMessage));
}
}
Я возвращаю 401, если переданы неверные учетные данные, и это работает нормально, когда я запускаю службу. Однако проблема возникает при написании модульных тестов для этого класса/метода.

Код: Выделить всё

 [TestMethod]
public void GetAuthenticationToken()
{
mockAuthService.Setup(i => i.AuthenticationUser())
.Returns(() => Task.Run(() => VALID_TOKEN));

var expectedResponse = new GenericResponse()
{
ErrorMessage = string.Empty,
HasError = false,
ResponseObject = VALID_TOKEN
};

var awsWcfFileStorageService = new AwsWcfFileStorageService(mockAuthService.Object,
mockS3FileService.Object);

var actualResponse = awsWcfFileStorageService.GetAuthenticationToken();

actualResponse.Should().BeEquivalentTo(expectedResponse);
}
Когда я запускаю модульный тест, я получаю следующую ошибку исключения

Код: Выделить всё

System.TypeLoadException: 'Could not load type 'System.ServiceModel.Web.WebOperationContext' from assembly 'System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.'
StackTrace для этого исключения выглядит следующим образом:

Код: Выделить всё

   at email_wcf_service.AwsWcfFileStorageService.GetAuthenticationToken() in D:\Projects\file-storage-windows-service\file-storage-wcf-service\FileStorageService.cs:line 89
at file_storage_wcf_service.Tests.FileStorageServiceTests.GetAuthenticationToken() in D:\Projects\file-storage-windows-service\file-storage-wcf-service.Tests\AwsWcfFileStorageServiceTests.cs:line 139
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Я пытался сопоставить версии, но это все равно не помогло

Подробнее здесь: https://stackoverflow.com/questions/790 ... m-assembly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Не удалось загрузить тип «System.ServiceModel.ServiceBehaviorAttribute» из сборки «System.ServiceModel».
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как имитировать WebOperationContext для модульного тестирования?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • «Не удалось загрузить тип» System.Object 'из сборки «System.private.corelib», потому что родитель не существует »исключе
    Anonymous » » в форуме C#
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Метод не найден: 'System.String System.String.Format(System.IFormatProvider, System.String, System.Object)
    Anonymous » » в форуме C#
    0 Ответы
    138 Просмотры
    Последнее сообщение Anonymous
  • System.ServiceModel.ServiceHost из приложения .net Core
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»