当服务到达我的端点时,我的应用程序连接到数据库服务器时出现问题。我正在通过在与Web服务应用程序相同的解决方案中使用控制台应用程序进行测试。然后,Web服务应用程序将连接到使用GetCourseDetails方法调用数据库的应用程序。
public ApiResponse RunCourseReports()
{
ApiResponse api = new ApiResponse();
List<string> Errors = new List<string>();
try
{
LCVista.Models.Courses report = new LCVista.Models.Courses();
report.ParseCourseDetailsFromSumtotal();
// if (Errors.Count > 0)
// {
// throw new Exception();
// }
// api.Message = "";
// api.Status = "Success";
return api;
}
catch (Exception e)
{
api.Status = "Error" + e.Message.ToString();
api.Message = e.Message;
//api.Message = "Error";
return api;
}
}
它尝试使用Entity Framework获取课程:
public List<tblStage_Course_Details> GetCourseDetails()
{
List<tblStage_Course_Details> courseDetailsList = new List<tblStage_Course_Details>();
try
{
using (var context = new CourseDetailsContext())
{
List<tblStage_Course_Details> courseDetailsLista = (context.tblStage_Course_Details.Where(s => s.Processed == false)).ToList();
}
}
catch (Exception e)
{
string message = e.Message;
string api = "Course Details";
SaveErrors(message, api, "Getting Course Details", "error");
}
return courseDetailsList;
}
我得到一个例外,说“在应用程序配置文件中找不到名为'CourseDetailsContext'的连接字符串。”
CourseDetailsContext如下:
public partial class CourseDetailsContext : DbContext
{
public CourseDetailsContext()
: base("name=CourseDetailsContext")
{
}
public virtual DbSet<tblStage_Course_Details> tblStage_Course_Details { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<tblStage_Course_Details>()
.Property(e => e.Code)
.IsUnicode(false);
所有Web Config文件都具有CourseDetailsContext的连接字符串。我测试了连接字符串,它可以工作。问题出在控制台应用程序在我的项目中调用Web服务而不传达连接字符串。
答案 0 :(得分:2)
将连接字符串添加到控制台应用程序的App.config中,然后在控制台应用程序上安装Entity Framework。