我要做什么?

  1. 改 ASE 的监听地址。对于有强迫症的我来说,ASE 默认监听的是 127.0.0.1:10000-10002,这让我无法接受,所以我要将它改成域名 + 80 端口的方式;
  2. 放到容器中。ASE 只允许单实例运行,难道为了这玩意儿,我要在三个环境下开三个虚拟机?
  3. 连接 SQL Server,而不是 SQL Server Express LocalDB。DEV/QA 各有其 SQL Server Instance,当然要桥归桥,路归路。

  要改变 ASE 的监听地址,首先要确认它有没有使用 HTTP Listener(即 HTTP.sys),否则无法支持端口共享。这个简单,运行起 ASE,netstat -ano 看到端口 10000-10002 的 PID 为 4,基本就可以断定了,但我们还是要进一步确认一下。

  打开 C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config,将 StorageEmulatorConfig 中的监听地址和帐号改成这个样子:

<StorageEmulatorConfig>
<services>
<service name="Blob" url="http://dev.blob.contoso.com/"/>
<service name="Queue" url="http://dev.queue.contoso.com/"/>
<service name="Table" url="http://dev.tablecontoso.com/"/>
</services> <accounts>
<account name="dev" authKey="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" />
</accounts>
</StorageEmulatorConfig>

  以管理员方式运行 ASE,结果如下:

  看到这里,各位看官可能要问,为什么监听的地址前面要加个“dev.”而不是直接用“blob.contoso.com”这样的地址呢?咳,还不是为了 Azure Storage Explorer。我们看看 Azure Storage Explorer 的连接页面:

  为了能让 Azure Storage Explore 能连接上。在 Azure Storage Explore 的连接页面上,第一种方式就不用想了,因为你是模拟器;第二种连接方式是使用连接字符串,Azure Storage Emulator 的连接字符串格式必须带有 /AccountName 的后缀(见 https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator),尝试一下:

  虽然这是我最想要的连接方式,但显然 Azure Storage Explorer 并不接受这样的连接串。那么只剩下第三种:

  结果:

  Azure Storage Explorer 把我们的域名改成了 accountname.blob.contoso.com 这样的格式,哎,这是 Azure 的 Storage Account 的 套路,虽然前面挂个“dev.”,后边挂个“/dev”,但也勉强接受了。建个 container 试试:

Okay!下一节,我们要尝试使用自定义的 SQL Server 实例。

在 Windows Server Container 中运行 Azure Storage Emulator(一):能否监听自定义地址?的更多相关文章

  1. 在 Windows Server Container 中运行 Azure Storage Emulator(三):运行在容器中

    上一节中,我们已经准备好了 SQL Server,那么接下来,我们要把 ASE 放到容器里了. 首先,新建 Start.ps1,内容如下: param( [Parameter(Mandatory=$t ...

  2. 在 Windows Server Container 中运行 Azure Storage Emulator(二):使用自定义的 SQL Server Instance

    上一节,我们解决了 Azure Storage Emulator 自定义监听地址的问题,这远远不够,因为在我们 DEV/QA 环境有各自的 SQL Server Instance,我们需要将 ASE ...

  3. 在Windows Server 2012 中安装 .NET 3.5 Framework

    问题 如今,仍然有许多程序和应用需要依靠.NET 3.5 framework 来运行.在Windows Server 2012中,微软提供了.NET 3.5 和.NET 4.5的安装选项以为你的应用程 ...

  4. 在Windows Server 2012 中安装 .NET 3.5 Framework,PowerShell 安装.NET FRAMEWORK

    问题 如今,仍然有许多程序和应用需要依靠.NET 3.5 framework 来运行.在Windows Server 2012中,微软提供了.NET 3.5 和.NET 4.5的安装选项以为你的应用程 ...

  5. Windows Server 2008中关闭事件跟踪程序的方法

    Windows Server 2008跟Windows Server 2003一样,在关机的时候会弹出一个“关闭事件跟踪程序”窗口,当然微软这么做是处于安全的考虑啦,但是如果我们只是个人用用的话,那就 ...

  6. Windows Server 2008中使用计划任务定时执行BAT bat进行PHP脚本的执行

    Windows Server 2008中使用计划任务定时执行BAT bat进行PHP脚本的执行 2016年01月03日 17:36:00 持之以恒 阅读数:5520 标签: windows定时任务.b ...

  7. Windows Server 2008中安装IIS7.0

    最近由于需求重新部署了一台服务器Windows Server 2008,由于以前都是在Windows Server 2003上操作,因此记录下,供其他同学参考.   下面主要介绍在Windows Se ...

  8. windows server 2003中端口默认不能使用问题

    问题:在windows server 2003中IIS6.0新建站点,给了一个新端口(非80),然后配置好后不能访问 解决方案:系统内置防火墙需要添加对应端口,如下图:     即解决.

  9. 在Windows Server 2003中搭建DNS服务器

    1.安装Windows Server 2003虚拟机 准备好Windows Server 2003的镜像:http://www.downza.cn/soft/184944.html 2.Windows ...

随机推荐

  1. Fiddler配置

    用fiddler来抓取手机app测试包的数据很方面,配置时需要注意一下几点: 1.保证电脑的防火墙是关闭的,不然是会抓不到包的: 2.查看下fiddler的默认端口8888是否被占用,如果被占用了,那 ...

  2. JavaScript数据结构-3.List

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. bind(0)

    通配地址就是全0的地址,由内核随机选取

  4. Go RabbitMQ 工作队列 (二)

    rabbitMQ工作队列 在之前内容中我们通过一个队列实现了消息的发送跟接收.接下来我们创建工作队列(Work Queue),用于在多个工作者之间分配耗时的任务 工作队列(任务队列)背后的核心主要是避 ...

  5. 使用JS传递数组型数据回服务器

    //为数组添加一个方法,判断某个值是否存在于数组中 Array.prototype.in_array = function (e) { for (i = 0; i < this.length & ...

  6. Uboot流程分析

    1. uboot的配置分析 1).配置入口分析 首先分析配置: 从make mx6dl_sabresd_android_config可知配置项,搜索Makefile: mx6solo_sabresd_ ...

  7. SQL Serever学习14——存储过程和触发器

    存储过程 在数据库中很多查询都是大同小异,编写他们费时费力,将他们保存起来,以后执行就很方便了,把SQL语句“封装”起来. 存储过程的概念 存储过程是一组SQL语句集,经过编译存储,可以”一次编译,多 ...

  8. 京东-Java开发工程师-一面

    时间:2017-4-7 16:47 时长:32分19秒 类型:笔试前电话面试 之前打过一个电话过来说了一声,下午就直接打过来面试了,没有自我介绍貌似 1. 你做的这些东西是什么样的? 2. 选一个你觉 ...

  9. 01 使用Git基本方法

    什么是Git? Git是目前世界上最先进的分布式版本控制系统(没有之一). 你得先有一个Git仓库,才能进行操作.创库就是Git存放你要保存的快照的数据的地方. 拥有一个Git仓库,有两种方法. 创建 ...

  10. K:java中的RMI(Remote Method Invocation)

    相关介绍:  RMI全称是Remote Method Invocation,即远程方法调用.它是一种计算机之间利用远程对象互相调用,从而实现双方通讯的一种通讯机制.使用这种机制,某一台计算机(虚拟机) ...