小编Rez*_*oei的帖子

docker 容器重新启动时 Database.Migrate 失败

我已在 Docker 上部署了 ASP.NET Core Web API。我的应用程序还与 Docker 容器中的 SQL Server 交互。

这是我的docker-compose.yml文件:

 version: '3'
 services:
     db:
         image: mcr.microsoft.com/mssql/server
         container_name: db
         ports:
             - 1533:1433
         environment:
             - TZ=Asia/Tehran
             - ACCEPT_EULA=Y
             - MSSQL_SA_PASSWORD=******
         user: root
         volumes:
             - ./mssql:/var/opt/mssql/data
    kava-service:
        image: service:1.0.0
        container_name: service
        expose:
            - 9001
        ports:
            - 9001:9001
        depends_on:
            - db
        environment:
            - ASPNETCORE__ENVIRONMENT=Production
            - TZ=Asia/Tehran
            - AUTO__MIGRATE=true
            - ConnectionStrings__BusinessDomainConnectionString=Server=db;Initial Catalog=Kava.BusinessDomain;User ID=sa;pwd=****;MultipleActiveResultSets=true;
            - ConnectionStrings__RecordsConnectionString=Server=db;Initial Catalog=Kava.Records;User Id=sa;pwd=****;MultipleActiveResultSets=true;
Run Code Online (Sandbox Code Playgroud)

当我运行 docker 容器(使用docker-compose)时,它工作正常。但是,如果我重新启动此容器,它就不起作用,并且应用程序将退出并显示以下消息:

用户“sa”登录失败。原因:无法打开显式指定的数据库“Kava.BusinessDomain”[客户端:172.18.0.4] kava-service
未处理的异常。Microsoft.Data.SqlClient.SqlException(0x80131904):数据库“Kava.BusinessDomain”已存在。选择不同的数据库名称。

当我删除这个数据库时,一切正常,但我不想删除它。

在开发中(我的意思是 Visual Studio)一切都很好,但在生产中(Docker),迁移无法按预期进行。

这是我的迁移命令: …

c# docker entity-framework-core asp.net-core-webapi entity-framework-migrations

5
推荐指数
1
解决办法
231
查看次数

如何通过创建像ASMX Web服务的实例来使用WebAPI

我有Asp.NET WebApi作为业务层.我想通过简单地调用业务控制器来调用它的方法.像这样的东西:(但我不能像服务参考那样添加这个webapi)

Business.API.UserController Users = new Business.API.UserController();
Users.GetAllUser();
Run Code Online (Sandbox Code Playgroud)

以前我正在使用WCF Web服务,我只能通过"添加服务引用"添加它并设置一些端点来创建Web服务实例.我不能在WebAPI中做到这一点(我认为).我已经阅读了很多关于它的文章,但大多数都是关于通过HttpRequest调用它的方法.通过这种方式 :

using (var client = new HttpClient())    
{    
    client.BaseAddress = new Uri("http://localhost:38104/");
    client.DefaultRequestHeaders.Accept.Clear();    
    HttpResponseMessage response;    
    response = await client.GetAsync("api/Weather");    
    if (response.IsSuccessStatusCode)    
    {    
        WeatherClient[] reports = await response.Content.ReadAsAsync<WeatherClient[]>();                   
     }    
}    
Run Code Online (Sandbox Code Playgroud)

我认为使用Web服务是荒谬的.我错了还是我有问题?

c# asp.net asp.net-web-api

3
推荐指数
1
解决办法
81
查看次数

在 UWP 中使用 Frame.Navigate 发送参数

一个在这里临时存储我的输入值的类。

namespace App2
{
    class methC
    {
        public string tb1 { get; set; }
        public string tb2 { get; set; }
        public string tb3 { get; set; }
        public string tb4 { get; set; }
        public string tb5 { get; set; }
        public string tb6 { get; set; }

        public methC(string tb1, string tb2, string tb3)
        {
            this.tb1 = tb1;
            this.tb2 = tb2;
            this.tb3 = tb3;
            //this.right1 = right1;
            //this.right2 = right2;
            //this.right3 = right3;
            //this.Box = Box;
            //this.Grade = …
Run Code Online (Sandbox Code Playgroud)

c# uwp

-1
推荐指数
1
解决办法
1501
查看次数