你调用的对象是空的。 BitShuva

时间:2013-06-21 20:03:44

标签: c# asp.net-mvc radio

您好我已经下载了一些源代码,而且我直接遇到了一些重大问题。我无法从开发人员那里得到答案,我也没有看到有人问这个问题,但我看了看,看了看,我不知道出了什么问题。

我一直收到这个错误:

  “/”应用程序中的服务器错误   对象引用未设置为对象的实例。

说明

  

执行当前Web请求期间发生未处理的异常   请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:

  

System.NullReferenceException:未将对象引用设置为对象的实例。

来源错误:

Line 157:            // Expected ID is standard Raven ID: "songs/4321"
Line 158:            const string expectedIdPrefix = "songs/";
Line 159:            if (song.Id.StartsWith(expectedIdPrefix, StringComparison.OrdinalIgnoreCase))
Line 160:            {
Line 161:                throw new ArgumentException("ID wasn't in the expected format.");

Visual Studio突出显示了这段代码。 (用** **表示)

using (var session = Get.A<IDocumentStore>().OpenSession())
        {
            var songFiles = Directory
                .EnumerateFiles(Server.MapPath("~/content/sample/music"), "*.mp3")
                .Select(f => new
                {
                    Song = new Song(Path.GetFileName(f)),
                    FilePath = f
                })
                .ToArray();

                songFiles.ForEach(async f => **await f.Song.UploadMp3ToCdn(f.FilePath));**

            if (!session.Query<Song>().Any())
            {
                songFiles.ForEach(s => session.Store(s));

                session.SaveChanges();
            }
        }

2 个答案:

答案 0 :(得分:1)

您是否尝试在调试器中检查songFiles?该错误似乎表明f.Songf.FilePath为空/未初始化。

答案 1 :(得分:-1)

发现问题,它正在尝试将音乐上传到web.config文件中指定的CDN,并且它正在寻找歌曲的ID。该ID必须首先由Raven数据库生成,并且它尝试先提取ID。

问题已修复。