Ошибка при попытке обратиться к базе данных?
Имею подобную ошибку:
Win32Exception: С обоих концов канала отсутствуют процессы.
Unknown location
SqlException: A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - С обоих концов канала отсутствуют процессы.)
Я включал TCP/IP, Named Pipes, что было рекомендовано в подобных темах ( подобных моей ), но это не дало результата, за исключением того, который описан ниже:
При смене строки подключения с
Server=HOME-PC\\SQLEXPRESS;Database=CacheDb;
на
Server=HOME-PC\\SQLEXPRESS;Database=CacheDb;User ID = user1; password = 123456789
ДО перезапуска Visual Studio, одновременно с выключением-включением TCP-IP или Named Pipes появлялась другая ошибка:
SqlException: Не удается открыть базу данных "CacheDb", запрашиваемую именем входа. Не удалось выполнить вход. При входе в систему пользователя "user1" произошла ошибка.
При перезапуске студии (но SQL сервер я не перезапускал) даже с другой строкой подключения, где присутствует User ID и Password, повторялся самая первая ошибка, которая описана в самом верху.
Ниже приведу код: Класс StartUp:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
namespace Platform
{
public class Startup
{
public Startup(IConfiguration config)
{
Configuration = config;
}
private IConfiguration Configuration { get; set; }
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedSqlServerCache(opts => {
opts.ConnectionString
= Configuration["ConnectionStrings:CacheConnection"];
opts.SchemaName = "dbo";
opts.TableName = "DataCache";
});
}
public void Configure(IApplicationBuilder app)
{
app.UseDeveloperExceptionPage();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints => {
endpoints.MapEndpoint<SumEndpoint>("/sum/{count:int=1000000000}");
endpoints.MapGet("/", async context => {
await context.Response.WriteAsync("Hello World!");
});
});
}
}
}
Класс EndpointExtensions, в котором находится метод MapEndPoint:
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using System.Reflection;
using System.Threading.Tasks;
using System.Linq;
using System;
namespace Microsoft.AspNetCore.Builder
{
public static class EndpointExtensions
{
public static void MapEndpoint<T>(this IEndpointRouteBuilder app,
string path, string methodName = "Endpoint")
{
MethodInfo methodInfo = typeof(T).GetMethod(methodName);
if (methodInfo == null || methodInfo.ReturnType != typeof(Task))
{
throw new System.Exception("Method cannot be used");
}
ParameterInfo[] methodParams = methodInfo.GetParameters();
app.MapGet(path, context => {
T endpointInstance =
ActivatorUtilities.CreateInstance<T>(context.RequestServices);
var result = (Task)methodInfo.Invoke(endpointInstance,
methodParams.Select(p =>
p.ParameterType == typeof(HttpContext) ? context :
context.RequestServices.GetService(p.ParameterType)).ToArray());
Console.Write("Hello!");
var Int = 5;
return result;
});
}
}
}