您好我已经下载了一些源代码,而且我直接遇到了一些重大问题。我无法从开发人员那里得到答案,我也没有看到有人问这个问题,但我看了看,看了看,我不知道出了什么问题。
我一直收到这个错误:
>“/”应用程序中的服务器错误 对象引用未设置为对象的实例。
说明
执行当前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();
}
}
答案 0 :(得分:1)
您是否尝试在调试器中检查songFiles
?该错误似乎表明f.Song
或f.FilePath
为空/未初始化。
答案 1 :(得分:-1)
发现问题,它正在尝试将音乐上传到web.config文件中指定的CDN,并且它正在寻找歌曲的ID。该ID必须首先由Raven数据库生成,并且它尝试先提取ID。
问题已修复。