0

嗨,我已经下载了一些源代码,但我在开箱即用时遇到了一些重大问题。我无法从开发人员那里得到答案,也没有看到其他人问过这个问题,但我看了又看,不知道出了什么问题。

我不断收到此错误:

“/”应用程序中的服务器错误。
你调用的对象是空的。

描述:

当前 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();
            }
        }
4

2 回答 2

1

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

于 2013-06-21T20:15:13.243 回答
-1

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

问题已修复。

于 2013-06-26T04:11:59.253 回答