小编Ste*_*wen的帖子

Azure文件预览 - 访问IIS和FileZilla中的共享文件夹

我对在Azure中负载均衡2个以上的Windows VM感兴趣.不过,我的主要要求是每个VM之间的'uploads'文件夹需要保持一致.此文件夹中的文件由我们的管理员用户FTP,然后他们需要在C#MVC Web应用程序中选择这些文件.由于您可以通过FTP连接到一个VM,但Web连接可能是另一个,因此上传必须集中.

看起来好像目前处于预览状态的新Azure文件会有所帮助,因为它们让我设置了每个虚拟机都可以访问的共享驱动器.我的想法是FileZilla Server允许FTP到达这个共享的"驱动器",Web应用程序将访问它以显示内容.

我已经注册了Azure文件预览,并设置了共享,为了实验,将其持久映射到Drive Z. 我还创建了一个新用户,并确保他们也有与Z相同的驱动器的持久映射.

但我似乎无法在远程桌面之外做任何事情.FileZilla尽管已将其服务设置为使用此新帐户登录,但不会显示此驱动器的内容,也不会向其写入任何内容.同样,尽管将Passthrough Authentication切换到虚拟文件夹的新帐户,但我的Web App无法访问文件内容.

有没有人知道通过网络路径或驱动器号访问此驱动器的方式?这是不可能的Azure文件,因为它们是?是否有任何其他解决方案可以跨虚拟机共享一些blob,但将其视为本地驱动器或网络共享?

[UPDATE]

这可能有所帮助.设置共享,并在cmd提示符下使用cmdkey和net use运行特殊创建的用户(如http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/27/persisting-中所述 - connections-to-microsoft-azure-files.aspx),如果我将IIS中的虚拟文件夹指向此共享,使用创建的特定帐户和测试连接,我得到:测试:身份验证(绿色勾选;"指定的用户凭据是有效的")测试:授权(红叉;"路径不存在或路径中的环境变量无法扩展以验证它是否存在.")

虽然仍然在runas cmd提示符下,但我可以访问共享,因此它不是特定的权限问题.由于某种原因,似乎IIS无法使用该用户访问共享.Azure文件的限制是我无法专门授予该共享中文件夹的任何类型的权限.

azure network-shares azure-virtual-machine

8
推荐指数
2
解决办法
2811
查看次数

Asp.Net MVC 3 - @ Html.Action不会呈现/返回任何HTML

我今天一直在将一个相当新的项目从ViewPages搬到Razor,一切似乎都很顺利.除了我试图使用Html.Action呈现用户控件,它不会呈现任何东西.

所以我有一个在Home/Index.cshtml中引用的Shared/_Layout.cshtml文件

Index.cshtml具有以下内容:

<article>

@Html.Action("LatestBlogsMainPanelWidget", "Blogs")

...

</article>
Run Code Online (Sandbox Code Playgroud)

我把陷阱放在BlogsController中,所以我知道这是被请求的.我也知道正在返回一个模型,视图引擎正在找到LatestBlogsMainPanelWidget,甚至正在运行一些伪Razor语法代码:@ {var s ="hello"; }

但是这个文件中的普通html没有进入浏览器.我也尝试了其他(以前工作)的部分,它们也不会出现(页面上的查看源确认它不存在).

我也试过替换@ {Html.RenderAction(...); } 没有成功.@ Html.Action的任何一侧都出现HTML,所以我知道Index.cshtml正在显示.

更诡异的_layout文件也有Html.Action命令和他们做似乎罚款.

我真的不确定还有什么要检查,或者如何确认管道正在获取HTML.任何人都可以帮忙吗?

谢谢!

partials renderaction razor asp.net-mvc-3

7
推荐指数
3
解决办法
2万
查看次数

首先在EF4.1代码中,如何在Web.config中覆盖ConnectionString名称

我正在创建一个多租户Asp.Net MVC 3 Web应用程序,并首先使用EF4.1代码进行数据库模型.

对于开发,我很高兴在App_Data中使用SqlServerCE,为了生产,这将转移到Sql Server 2008.

说我的情况下被称为"MyModels",默认情况下,代码首先查找名为Web.config中"MyModels"的连接字符串.这可以被告知使用App_Data中的文件或更改为访问SQL2008中的数据库.到目前为止都很好.

但由于多租户,我希望SqlServerCE文件名匹配租户的唯一ID(因此App_Data将具有"client_x.sdf","client_y.sdf"; Sql Server 2008将具有单独的数据库).我无法弄清楚如何指向这些不同的数据库.

我已经尝试从DbContext继承并提供连接字符串的MyModel(在Web.config中使用'占位符'conn字符串并用唯一的id替换"{clientId}"),我也尝试在其中设置连接字符串MyModels构造函数:

base.Database.Connection.ConnectionString = xxx;
Run Code Online (Sandbox Code Playgroud)

但这似乎永远不会奏效.我总是得到以下错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

(这表明它尚未"配置"使用SqlServerCE,因此尝试连接到Sql Server.我想!)

跟踪代码,此时尚未从Web.config中读取Database.Connection.ConnectionString,因此我无法搜索和替换它,并且可能会在管道中稍后被'占位符'conn字符串覆盖.

我认为这一定非常简单,我找不到'钩子'.有人可以帮忙吗?

c# asp.net entity-framework-4 ef-code-first asp.net-mvc-3

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

Dapper:找不到方法:'System.Collections.Generic.IEnumerable`1 <!! 0> GridReader.Read(Boolean)'

我正在寻找为Dapper交换一些EF代码优先的数据库请求,以加速我们网站的一些缓慢部分.我刚刚开始尝试,而Dapper看起来很好.

我已经成功转换了一些代码以使用.Query扩展.但是现在我正在尝试.QueryMultiple,然后使用.Read扩展来获取每个结果集.

我试图将Dapper代码移动到一个新项目中,以使其远离我的MVC项目,并且.Query的东西很好.但是当我尝试使用.QueryMultiple访问一个方法时,在它甚至命中代码中的任何断点之前我都会收到错误:

Method not found: 'System.Collections.Generic.IEnumerable`1<!!0> GridReader.Read(Boolean)'.
Run Code Online (Sandbox Code Playgroud)

如果我将代码移动到Web项目中,它可以正常工作.

我无法弄清楚我需要什么或缺少什么.Visual Studio和ReSharper看起来很开心.它正在编译.这只是一个运行时问题.这两个项目都针对.Net 4.5,两者都有对Dapper的nuget引用.Dapper项目设置为Win C#类库.我已经查看了SqlReader.cs的源代码,它似乎没有任何'使用',我还没有.我相信System.Collections.Generic是自动包含的,并且在添加引用对话框中似乎无法选择.

我觉得我错过了一些非常非常明显的东西......

这是代码:

        using (var conn = new SqlConnection(ConnectionString))
        {
            conn.Open();

            // TODO: Add in checks
            const string query = @"
            SELECT * FROM FileCollections WHERE Id = @fileCollectionId
            SELECT * FROM Files f WHERE FileCollection_Id = @fileCollectionId
            SELECT * FROM ExternalLinks WHERE FileCollection_Id = @fileCollectionId
            ";

            // return a GridReader
            using (var result = conn.QueryMultiple(query, new {fileCollectionId}))
            {
                var fileCollection = result.Read<FileCollection>().Single();
                var files = result.Read<File>().ToList();
                fileCollection.Files …
Run Code Online (Sandbox Code Playgroud)

.net generics asp.net-mvc c#-4.0 dapper

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

使用反射来获取派生类的静态实例的实例

如果这已在其他地方得到解答,请道歉,但我并不过分熟悉Reflection,所以我不确定我应该搜索的确切术语.

基本上我正在尝试根据类型查找类的已定义公共静态字段列表.

所以给定了LocalisationToken类,我有很多基于此的类,例如AboutToken,AdminToken等.

这些类中的每一个都具有这些派生类的公共静态只读实例,例如:

public static readonly LocalisationToken TermsAndConditions = new AboutToken("Terms And Conditions", Guid.Parse("595FB313-4940-489b-9CC8-4B9BF0B62E8B"));
public static readonly LocalisationToken OkGotIt = new AboutToken("OK, got it", Guid.Parse("5F5F22A4-C45C-43f0-A2A4-304740E0EE12"));
Run Code Online (Sandbox Code Playgroud)

我想要做的是在运行时在编译库中查找所有实例.例如,实例化AboutToken时的底层代码是使用构造函数属性创建新的LocalisationToken.我的要求是恢复Guid和默认文本,例如"条款和条件"和595FB313-4940-489b-9CC8-4B9BF0B62E8B

如果我在包含LocalisationToken的程序集上使用GetTypes(),我只需要获取各种派生类的AboutToken,AdminToken等.我需要实际的实例.

碰巧的是,我根本不需要派生类.但是,即使所有实例都标记为"LocalisationTokens",我还需要迭代这些吗?

c# asp.net system.reflection

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