小编Dus*_*sda的帖子

将MySql与Entity Framework 4和Code-First Development CTP一起使用

我以为我会尝试使用Scott Guthrie 关于代码优先开发实体框架4 的最新帖子.而不是使用Sql Server,我正在尝试使用MySql.以下是我的web.config的相关部分(这是一个Asp.Net MVC 2应用程序):

<connectionStrings>
    <add name="NerdDinners"
         connectionString="Server=localhost; Database=NerdDinners; Uid=root; Pwd=;"
         providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
  <system.data>
    <DbProviderFactories>
      <add name="MySQL Data Provider" 
           invariant="MySql.Data.MySqlClient" 
           description=".Net Framework Data Provider for MySQL" 
           type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
Run Code Online (Sandbox Code Playgroud)

就像教程一样,我希望EF4能够自动为我生成数据库.相反,它会抛出一个ProviderIncompatibleException,内部异常抱怨NerdDinners数据库不存在.

很公平; 我去为它创建了MySql数据库只是为了看看事情是否可行,而是获得了另一个ProviderIncompatibleException.这次,"提供商不支持DatabaseExists".

我承认,这是我第一次真正钻研实体框架(我主要坚持使用Linq to Sql),而这一切都是在上周才发布的Code-First CTP上运行的.那就是说,我在这里做错了什么,或者是一个可以解决的已知问题?

mysql asp.net-mvc ctp code-first entity-framework-4

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

Facebook Graph API - 获取URL的ID?

这似乎是一个非常明显的,基本的东西,期待从图谱API,但我遇到了严重的困难.我想要做的就是获取任何特定URL的ID.他们有一个方法:

https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/
Run Code Online (Sandbox Code Playgroud)

这很有效.但如果我尝试另一个网址,比如我的博客,

https://graph.facebook.com/?ids=http://dusda.vox.com
Run Code Online (Sandbox Code Playgroud)

它没有像我所有的例子那样给我一个数字ID.相反,这个:

{"http:\/\/dusda.vox.com":{"id":"http:\/\/dusda.vox.com"}}
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用那个"id",我会得到插孔(可能是因为查询字符串看起来无法解析):

Request: https://graph.facebook.com/http://dusda.vox.com/likes
Response: {"id":"http:\/\/dusda.vox.com\/likes"}
Run Code Online (Sandbox Code Playgroud)

那么这有什么用呢?Graph API是选择性可靠的,还是我误解了什么?我已经尝试过我知道在Facebook上流行的网址,而且我的结果好坏参半.

reliability facebook-graph-api

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

ASP.NET MVC Action被称为两次

我有一个特定的控制器动作被调用两次,除了奇怪之外导致我的应用程序的单个部分出现问题(不是真正的问题,它只是引起我的双重调用).

知道为什么控制器动作每次都要执行两次吗?

asp.net-mvc

20
推荐指数
4
解决办法
3万
查看次数

获取VS Add-in或DXCore插件的解决方案/项目文件列表

我正在尝试为Visual Studio编写一个加载项,除其他外,需要跟踪Visual Studio解决方案中的每个文件.我知道我需要订阅什么事件(当打开解决方案时,在其中添加/删除/编辑文件时,项目中的文件相同等),但我不明白如何实际获取文件列表从任何一个.

我最近安装了CodeRush并且一直在使用DXCore框架.我对插件的方法感到非常满意,但我仍然没有看到一个明显的方法来获取解决方案中的文件列表.

总结一下:如何通过Visual Studio SDK DXCore获得解决方案及其项目中可靠的文件列表?

c# plugins add-in dxcore visual-studio-sdk

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

使用输出缓存和其他动作过滤器

我已将Output Caching添加到我的应用程序中的几个操作中,以便轻松提升性能.但是,这些操作还需要通过命中Redis数据库在每个请求(它是一个视图计数器)后递增一个计数器.

首先,我想我可以调整动作过滤器执行的顺序,以确保计算视图:

public class CountersAttribute : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        //increment my counter all clever like
        base.OnResultExecuted(filterContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

但那没用; 显然,OutputCacheAttribute的行为与普通的动作过滤器不同.然后我尝试实现自定义输出缓存:

public class OutputCacheWithCountersAttribute : OutputCacheAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        //straight to the source to get my headcount!
        base.OnResultExecuted(filterContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

不,也没用; 缓存操作后,操作过滤器似乎完全被忽略.游民.

所以,呃,有没有办法(没有实现自定义输出缓存提供程序),以确保我的观点被正确计算,这是干净和明智的?

asp.net-mvc outputcache action-filter

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

在所有浏览器中传递来自iFrame的消息

我有一个可嵌入的iframe,将在第三方网站上使用.它有几种形式可以填写,最后必须告知父页面它已完成.

换句话说,iframe需要在单击按钮时将消息传递给它的父级.

在浏览了"No,跨域策略是一个混蛋"的海洋之后,我找到了window.postMessage,它是HTML5草案规范的一部分.

基本上,您将以下JavaScript放在页面中以捕获来自iframe的消息:

window.addEventListener('message', goToThing, false);

function goToThing(event) {
    //check the origin, to make sure it comes from a trusted source.
    if(event.origin !== 'http://localhost')
        return;

    //the event.data should be the id, a number.
    //if it is, got to the page, using the id.
    if(!isNaN(event.data))
        window.location.href = 'http://localhost/somepage/' + event.data;
}
Run Code Online (Sandbox Code Playgroud)

然后在iframe中,有一些JavaScript向父母发送消息:

$('form').submit(function(){
    parent.postMessage(someId, '*');
});
Run Code Online (Sandbox Code Playgroud)

太棒了吧?唯一的问题是它似乎不适用于任何版本的IE.所以,我的问题是这样的:鉴于我需要将一条消息 iframe 传递给它的父节点(我控制它们),我可以使用哪种方法可以在任何(> IE6)浏览器中使用吗?

javascript embed iframe html5

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

自定义ASP.NET MVC路由以服务".json"".xml"样式URL

我有一个搜索Api,我正在努力,需要在一个Html块中返回搜索结果(使用客户端已经定义的样式).我还想在Json中返回结果,以便我们最终将使用的未来Api内容.目前,路线看起来像这样:

/api/1/search/json?param1=blah&param2=blah&etc
/api/1/search/html?param1=blah&param2=blah&etc
Run Code Online (Sandbox Code Playgroud)

作为参考,此处的模式为/ {area}/1/{controller}/{action}.

我喜欢一些Api的外观,我看到返回的结果会有不同的格式,具体取决于它们在url中的'扩展',la:

/api/1/search.json?param1=blah&param2=blah&etc
Run Code Online (Sandbox Code Playgroud)

但是,我还没有想出如何配置Asp.Net的Mvc路由来支持这种风格.ApiAreaRegistration.cs中的常规路由是:

context.MapRoute(
    "Api_default",
    "Api/1/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional });
Run Code Online (Sandbox Code Playgroud)

我尝试了以下定义的一般,但不起作用:

//search api
context.MapRoute(
    "searchJson",
    "api/1/{controller}.{action}",
    new { controller = "SearchController" });
Run Code Online (Sandbox Code Playgroud)

如何配置路由以启用.format样式的URL?

c# asp.net-mvc asp.net-mvc-routing

9
推荐指数
2
解决办法
5749
查看次数

批量上载大量图像到Azure Blob存储

我有大约110,000张各种格式的图像(jpg,png和gif)和大小(2-40KB)本地存储在我的硬盘上.我需要将它们上传到Azure Blob存储.在这样做时,我需要设置一些元数据和blob的ContentType,否则它是一个直接的批量上传.

我目前正在使用以下内容来处理一次上传一个图像(并行超过5-10个并发任务).

static void UploadPhoto(Image pic, string filename, ImageFormat format)
{
    //convert image to bytes
    using(MemoryStream ms = new MemoryStream())
    {
        pic.Save(ms, format);
        ms.Position = 0;

        //create the blob, set metadata and properties
        var blob = container.GetBlobReference(filename);
        blob.Metadata["Filename"] = filename;
        blob.Properties.ContentType = MimeHandler.GetContentType(Path.GetExtension(filename));

        //upload!
        blob.UploadFromStream(ms);
        blob.SetMetadata();
        blob.SetProperties();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否还有其他技术可以用来处理上传,尽可能快.此特定项目涉及将大量数据从一个系统导入另一个系统,并且出于客户原因,它需要尽快发生.

c# azure blobstorage azure-storage-blobs

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

客户截断Querystring会导致FormatException

在Rentler,我们经常看到错误

System.FormatException,String未被识别为有效的布尔值

在我们的健康监测中.事实证明,看起来我们的客户偶尔会在其他地方复制/粘贴网址时截断网址的末尾.恰好,布尔参数往往位于字符串的末尾,当客户通过某个社交网络共享它时,我们会收到错误报告.

https:// {domain}/search?sid = 17403777&nid = 651&location = 840065&propertytypecode = 1&photosonly = fals

我们对所有东西使用模型绑定,所以我不确定如何处理这个问题.我可以将属性更改为字符串并尝试在控制器操作中解析它,但这很邋..是否有任何简单,流畅的方式将模型绑定器提供给TryParse()它,如果它不能解决为false?

c# asp.net-mvc

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

WCF Ajax 调用不适用于 Jquery $.ajax

我有以下 jQuery(服务名称已更改):

var url = "http://localhost/services/MyService.svc/addentrant";
var stuff = $("#signup-form").serializeArray();

$.ajax({
    type: "POST",
    url: url,
    contentType: "application/json; charset=utf-8",
    data: stuff,
    timeout: 10000,
    success: function (obj) { alert('yay!'); }
});
Run Code Online (Sandbox Code Playgroud)

上面的代码向我的本地 IIS7.5 服务器上的 Sitefinity 中托管的 WCF 服务发出请求。下面是相关的web.config:

<endpointBehaviors>
<behavior name="jsonBehavior">
  <webHttp/>
</behavior>
...
<serviceBehaviors>
        <behavior name="DefaultBehavior">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
...
<services>
 <service behaviorConfiguration="DefaultBehavior" name="Services.MyService" >
        <endpoint address="" behaviorConfiguration="jsonBehavior" binding="webHttpBinding" contract="Services.IMyService" bindingConfiguration=""/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
 </service>
...
Run Code Online (Sandbox Code Playgroud)

最后是MyService的接口和实现:

[ServiceContract(Name = "MyService", Namespace = "http://myservice.com/services/2010/")]
public interface IMyService
{
    [OperationContract,
    WebInvoke(Method = …
Run Code Online (Sandbox Code Playgroud)

ajax wcf jquery post json

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