小编Jax*_*ian的帖子

这是一个有效且可能的Azure QA环境吗?

我正在尝试为我公司的应用程序套件制定有效的开发/测试/ QA环境,以便迁移到Azure.但是,我正在强制执行我们的dev/test/qa/etc的约束.环境实际上是在内部托管并通过构建服务器(例如CC.NET,TeamCity,Jenkins等)部署.

在这样的"测试环境"中,我们需要能够为QA和业务专业人员团队触发未发布代码(和数据)的特定快照的部署,以测试技术测试和业务验收测试.显然,所有这些人都不会编译并在Visual Studio中使用F5来进行此测试,因此我们需要一个可以部署的环境.在我们的SDLC中,在进行升级和生产之前,我们实际上经历了~4个这样的环境.简而言之,我们需要一个低开销(自动部署)和易于重现的流程.

在规划这个环境时,"如何托管Azure服务"这个问题显然很难.让我们来看看Azure的每个部分.斜体选项是我们想要的选择.

  • Web角色嗯,IIS可以或多或少地为我们处理这些(至少足以用于开发/测试情况 - 除了真正的负载测试,显然我们必须在Azure中做,这很好).
  • 工人角色我们在这里有两个选择.第一个是有一个Windows服务的"包装应用程序",我们可以使用它来托管我们的工作者角色调用功能的DLL(毕竟,我们真正的工作者角色项目不应该只是一个配置文件和调用DLL来执行工作的~4行代码.该选项有效,但需要一些非常不同的应用程序代码和部署代码管理/维护.第二个选项是使用Azure计算模拟器.只要您的工作者角色不需要监视外部端口或任何东西,这就可以工作.在我们的例子中,我们的工作者角色只需要监视队列,然后访问各种资源.与此问题(S)围绕着构建别共脚本,因为只有这样,才能自动部署到Azure的仿真器是运行CSPackCSRun托管在Azure Emultor,这可能不是您的构建服务器的机器上.因此,您必须执行某种远程脚本来完成此任务.
  • VM角色 我们并不关心这些,所以我完全忽略了这方面的测试.
  • 队列在这里,我们有3个选项.首先是使用MSMQ.因为这需要一个我们没有的完全不同的代码库(或者至少围绕那个不同的代码库进行抽象),我不会考虑这个选项.第二个是将队列保留在Azure中,因为它们非常小/便宜.我们实际上暂时这样做,直到我们可以尝试第三种选择.第三种选择是使用Azure存储模拟器.我不确定,但我相信这个选项只允许在本地计算机上运行的服务访问存储对象.对于队列,我们​​的应用程序代码是实际"部署"队列的代码,因此只要我们的应用程序代码实际在托管Azure存储模拟器的服务器上运行,这应该没问题.
  • 表格在这里,我们有3个选项.第一个是我讨厌的,那就是使用数据库并在其中创建一个表来访问这些表.我不是在考虑这个选择.第二个是将表保留在Azure中.我不喜欢这个,因为对于那些可能存储大量数据(每条记录高达1MB)的东西来说,这是很多来回.虽然队列非常轻巧且便宜,但桌面成本可以很快增加.这使我们第三个选择,使用Azure存储模拟器.我不确定,但我相信这个选项只允许在本地计算机上运行的服务访问存储对象.我仍然不理解模拟器中的所有优缺点表.
  • Blob在这里,我们有两个选择.第一个是坏的,这是将它们保存在Azure中.这些是最有可能的文件,因此这是不明智的.因此,第二个选项再次是使用Azure存储模拟器.我认为这是我们需要做的.

因此,假设我们有MVC应用程序(Web角色),由队列触发但访问表,blob和WCF Web服务的WCF Web服务(Web角色),队列,表,Blob和工作者角色,这看起来像是合理的方式来托管我们的内部QA(和类似)环境?除了使用远程脚本CSPack和CSRun部署到Azure模拟器的一些烦恼之外,使用构建服务器这一切听起来是否合理自动化?

azure

5
推荐指数
2
解决办法
1480
查看次数

绑定配置和行为有什么区别?

我正在尝试更好地获取 WCF配置文件,以便我可以更轻松地处理更复杂的场景.通常情况下,我正在重新审视我对基础知识的理解.因此,这提出了一个问题,绑定配置和行为之间有什么区别?不是在问什么是绑定(即netTcpBinding等等).我明白了.

所以假设我有一个包含多个配置的配置文件用于该单个绑定:

  <netTcpBinding>
    <binding name="LargeMessages" maxBufferPoolSize="5242880" maxBufferSize="5242880" maxReceivedMessageSize="5242880">
      <readerQuotas maxDepth="256" maxStringContentLength="16384" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="None"></security>
    </binding>
    <binding name="LargeFiles" maxBufferPoolSize="15728640" maxBufferSize="15728640" maxReceivedMessageSize="15728640">
      <!-- 15MB max size -->
      <readerQuotas maxDepth="256" maxStringContentLength="15728640" maxArrayLength="15728640" maxBytesPerRead="204800" maxNameTableCharCount="15728640" />
      <security mode="None"></security>
    </binding>
    <binding name="LargeStrings" maxBufferPoolSize="524288" maxBufferSize="524288" maxReceivedMessageSize="524288">
      <!-- 0.5MB max size -->
      <readerQuotas maxDepth="256" maxStringContentLength="524288" maxArrayLength="524288" maxBytesPerRead="204800" maxNameTableCharCount="524288" />
      <security mode="None"></security>
    </binding>
  </netTcpBinding>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我打电话LargeMessages,LargeFilesLargeStrings"绑定配置".

现在我有了这个配置,我也可以有多个行为,其中一个可能看起来像这样:

<behavior name="DefaultServiceBehavior">
  <serviceCredentials>
    <serviceCertificate findValue="1234123412341234123412341234" …
Run Code Online (Sandbox Code Playgroud)

.net wcf

4
推荐指数
1
解决办法
2458
查看次数

如何从 JSON 字符串中获取深度嵌套的属性?

如何使用 JSON.NET 从 JSON 中获取如下所示的“myThings”数组?

示例 1:

{
    "z": {
        "a": 1,
        "b": 2
    },
    "something": {
        "y": [1, 2],
        "somethingElse": {
            "1234": {
                "foo": "bar",
                "myThings": [{
                    "name": "bob",
                    "age": 3
                }, {
                    "name": "bob",
                    "age": 3
                }]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

示例 2:

{
    "z": {
        "a": 1,
        "b": 2
    },
    "something": {
        "y": [1, 2],
        "somethingElse": {
            "7890": {
                "foo": "bar"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的一些困难:

  • 属性名称之一是不可预测的数字(“1234”和“7890”)
  • 有时“myThings”数组不存在 - 在这种情况下,我想要的是 null 或空数组/集合

另一个考虑因素,以防它对您有帮助:我确实有一个静态类代表 myThings 数组中的内容,所以我理想的返回值是 IEnumerable<MyThing>

我的第一次尝试是使用, …

c# json json.net

4
推荐指数
1
解决办法
2046
查看次数

可配置的应用程序洞察仪器密钥

如何才能最好地使Application Inisghts的Instrumentation Key可以以允许Azure管理员管理MVC5 Web应用程序的App Services部署设置的方式进行配置?在MVC应用程序初始化中是否存在应该执行此操作的某个事件,或者几乎可以在任何时候执行此操作?我也在使用Trace Listener集成.

默认情况下,在ApplicationInsights.config文件中设置Instrumentation Key(iKey).此外,如果包含JavaScript部分,则再次在_Layout.cshtml文件中设置iKey .这是两个不同的地方,你需要管理一个iKey.

我希望能够通过Azure门户的应用服务 - > 应用程序设置选项卡管理此密钥.原因是:

  1. 我想部署这个应用程序的多个实例,每个实例都有自己独特的iKey
  2. 我想定期更改这个iKey(因为原因)
  3. 我不希望这个iKey存储在我们的代码存储库中("dev"iKey可以存储在代码存储库中)也不希望它由我们的构建自动化管理(再次,因为原因)

asp.net-mvc azure asp.net-mvc-5 azure-application-insights

4
推荐指数
2
解决办法
2919
查看次数

使用MVC的AuthorizeAttribute与多组角色?

我想要做的是对动作处理程序进行两级角色检查.例如,要求用户至少属于以下组中的一个:SysAdmins,Managers 至少一个以下组:HR,Payroll,Executive.

最初的猜测是,这可能是这样做的方法,但我认为不是:

[Authorize(Role="SysAdmins,Managers")]
[Authorize(Role="HR,Payroll,Executive")]
public ActionResult SomeAction()
{
    [...]
}
Run Code Online (Sandbox Code Playgroud)

我是否需要将自己的自定义属性作为角色来接受Role1和Role2或类似的东西?或者有更简单/更好的方法吗?

authentication asp.net-mvc authorization asp.net-mvc-2

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

无法取消HTML复选框的onchange事件

我有一个这样的工作示例,但我不确定为什么我的实现不起作用.有人可以帮忙吗?我错过了一些东西,我需要另一组眼睛才能找到它.:)

JSFiddle演示 < - 请参阅此处的代码.

我正在尝试重现此处使用的功能.我似乎对传递/访问它有点困惑event变量.

谢谢!!:-)

html javascript jquery

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

为什么我不能索引并在索引中包含相同的列?

为什么我不能做类似以下的事情?我希望这个"常见"列上的过滤器既快又能够在不需要表扫描的情况下返回它.

CREATE NONCLUSTERED INDEX Ix_Foo
ON Foo (ForeignKeyID, ObjectID)
INCLUDE (ObjectID)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到错误:

不能在索引中使用重复的列名.列名'ObjectID'不止一次列出.

我喜欢这样的查询,我想要返回ObjectID以及过滤它.这里的子查询是我的意思的一个例子:

SELECT something FROM Bar
WHERE Bar.FooID IN
  (SELECT ObjectID FROM Foo WHERE ForeignKeyID=13 AND ObjectID IN (12, 13, 14, 15))
Run Code Online (Sandbox Code Playgroud)

我在概念上缺少什么?

sql-server indexing sql-server-2008

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

导入 SQL 文件“重复条目‘0’用于键‘PRIMARY’”

我知道有类似的问题已得到解答,但请尽力帮助我。

我正在使用 PHPMyAdmin 将 MyBB 数据库的备份导入到新主机中。尝试导入 .sql 文件时,出现以下错误:

SQL查询:

INSERT INTO mybb_datacache(  `title` ,  `cache` ) 
VALUES (

'internal_settings',  'a:1:{s:14:\"encryption_key\";s:32:\"rrvohvVATtOauucNTmEXAmvNvbw9ujvb\";}'
);

MySQL said: 

#1062 - Duplicate entry 'internal_settings' for key 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚问题所在。我已经清空了所有表并重新安装了数据库四次。我一整天都在试图解决这个问题,这非常令人沮丧。

(链接已删除)

请帮帮我。我该如何解决这个问题?

mysql sql database phpmyadmin

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

如何让Swashbuckle将Swagger UI按版本分组?

我正在使用新的Azure API应用程序(Visual Studio 2013中的模板,带有15年3月24日起的新SDK),并且我希望我的Swagger UI组按版本号进行调用。就我而言,我目前正在通过URI进行版本控制(我知道REST纯粹主义者会告诉我不要这样做-请不要在此处尝试“更正我的错误”)。例如,我可能有以下电话:

http://example.com/api/Contacts <-- "latest"
http://example.com/api/1/Contacts
http://example.com/api/2/Contacts
http://example.com/api/Contacts{id} <-- "latest"
http://example.com/api/1/Contacts/{id}
http://example.com/api/2/Contacts/{id}
Run Code Online (Sandbox Code Playgroud)

从功能上来说,这很棒!(是的,我知道有些人会畏缩。对不起,这会伤害您的感觉。)但是,我的问题是使用Swagger UI组织。默认情况下,Swagger UI通过控制器名称将它们分组(Contacts在这种情况下)。我在SwaggerConfig.cs文件中看到可以更改此设置:

// Each operation be assigned one or more tags which are then used by consumers for various reasons.
// For example, the swagger-ui groups operations according to the first tag of each operation.
// By default, this will be controller name but you can use the "GroupActionsBy" option to
// override with any value.
//
//c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString()); …
Run Code Online (Sandbox Code Playgroud)

rest asp.net-web-api swagger-ui swashbuckle

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

4.0 .NET Framework中的所有通用集合/类型是什么?

是否有一个详尽的列表,列出了4.0 .NET Framework中的所有"基础"(在面向对象的意义上没有使用,但在常识中更常用)泛型类型?我找到了这个列表,我经常发送更新/中级开发人员,以便他们可以理解非泛型类型如何映射到泛型类型,但这绝不是详尽无遗的.我在寻找的东西,还包括诸如KeyValuePair<>,Tuple<>以及其他基本的仿制药,可能不是很-众所周知的.这样的接口IObservable<>会很好但不一定是必需的.

.net c# vb.net generics .net-4.0

2
推荐指数
1
解决办法
2340
查看次数