![](/img/trans.png)
[英]Unable to connect to web server IIS Express - ASP.NET CORE
[英]ASP.NET Core with Angular 7 template connect to SQL Server Express database to read table
我已经使用Angular模板在Visual Studio Community ASP.NET Core中创建了一个应用程序。 我将项目的Angular升级到了v7。
我试图按照这个例子, 这个C-Sharpcorner链接
问题是,当我尝试使用https://localhost:44367/api/Employee/Index
连接到服务器时,抛出了无法连接到服务器的异常。
SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:26-指定服务器/实例时出错)
所以我在SQL Server中创建了表和过程,检查了它们的存在。 服务器已启动,并按照此msdn link中的配置进行配置。
我启用了TCP / IP,并向防火墙添加了新规则,以允许来自本地域的所有TCP端口请求。
我的Employee.cs
被修改为实际项目的名称。
我的EmployeeDataAccessLayer.cs
被修改为实际项目的名称和使用ADO.Net实体数据模型测试的连接字符串的名称。
我还将连接字符串添加到web.config
。
我在仅更改项目名称的位置添加了控制器。
在我将代码注入Angular应用程序empservice.service.ts
,遇到了一些困难,因为我不知道很热地修改下面的函数以使用HttpClient(映射可观察到的Http的rxjs)不会工作)。 所以我在构造函数结束后立即注释了代码。
该服务已在应用程序中注册为提供商。
import { Injectable, Inject } from '@angular/core';
import { Http, Response} from '@angular/http';
import { HttpClient } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { Router } from '@angular/router';
import { map } from 'rxjs/operators';
@Injectable()
export class EmployeeService {
myAppUrl: string = "";
constructor(private httpClient: HttpClient, @Inject('BASE_URL') baseUrl: string) {
this.myAppUrl = baseUrl;
}
//getEmployees() {
// return this.httpClient.get(this.myAppUrl + 'api/Employee/Index')
// .map((response: Response) => response.json()
// .catch(this.errorHandler));
//}
//getEmployeeById(id: number) {
// return this._http.get(this.myAppUrl + "api/Employee/Details/" + id)
// .map((response: Response) => response.json())
// .catch(this.errorHandler)
//}
问题1期望https:// localhost:44367 / api / Employee / Index提供表中的内容是错误的吗? (仅控制器的实现还不够吗?)问题2您能否帮助我改写上面服务中的代码以在Angular应用程序中获取数据?
根据错误:
SqlException:...找不到服务器或无法访问服务器。 验证实例名称正确无误...
和connectionString:
string connectionString = "data source = DESKTOP - RBLIODU\\SQLEXPRESS;initial catalog = Employees; integrated security = True;MultipleActiveResultSets=True;App=EntityFramework";
我建议您将服务器名称更改为(localhost)
或DESKTOP-RBLIODU
(不带空格)。
像那样:
string connectionString = "data source=(localhost)\\SQLEXPRESS;initial catalog = Employees; integrated security = True;MultipleActiveResultSets=True;App=EntityFramework";
祝好运!
经过无数次尝试和失败之后,回到我没有学过的最基本的知识,导致我在学校做了其他事情,我在帖子中注意到要访问数据库, 必须首先通过程序Visual连接到该数据库。 工作室,使用服务器资源管理器 。 由于我要使用的连接字符串未在Visual Studio中打开,因此无法连接到数据库。
至于第二个问题,答案与此类似:
export class EmployeeService {
employees: Observable<Employees[]>;
newemployee: Employees;
constructor(private http: HttpClient) {
}
getEmployees() {
return this.http.get<Employee[]>(baseUrl + 'Employees');
}
etc...
}
精通此过程后,我可能会编辑此帖子。 目前,这是我的基本理解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.