2016-11-14 42 views
0

使用.Net 4.6.2。在Nuget重新安裝後解決實施IMultiInstancePlugin

我從源代碼控制加載一箇舊的項目,以添加一個新的圖像頁面。

圖像的頁面保存在各自的文件夾,所以我只是複製「folder2015」到「folder2016」的功能,並運行相同的代碼:

private void DisplayImages(string path) { 
    var dir = new DirectoryInfo(path); 
    var files = dir.GetFiles("DSC*.JPG"); 
    var sb = new StringBuilder("<table>"); 
    var td_counter = 0; 
    for (int n = 0; n < files.Length; n++) { 
     var file = files[n]; 
     var ext = file.Extension.ToLower(); 
     var lc_name = file.Name.Substring(0, file.Name.ToLower().IndexOf(ext)); 
     if (lc_name.IndexOf("_s") == -1) { 
      var thumb = String.Format("{0}_s{1}.ashx?w=240&h=240", lc_name, ext); 
      if (td_counter == 0) { 
       sb.Append("<tr>"); 
      } 
      sb.Append(String.Format("<td><a href=\"{0}\" target=\"_blank\"><img src=\"{1}\"></a></td>", file.Name, thumb)); 
      td_counter++; 
      if (td_counter == 3) { 
       td_counter = 0; 
       sb.AppendLine("</tr>"); 
      } 
     } 
    } 
    sb.AppendLine("</table>"); 
    divDefault.InnerHtml = sb.ToString(); 
} 

每個DSC*.JPG圖像是6-8之間MB。

頁面將加載,但所有圖像都不可用。

我在Web.config文件中看到了ImageResizer條目,因此決定了需要在此PC上運行的包。

我進包管理器控制檯,以獲取最新:

PM>安裝,包裝ImageResizer.MvcWebConfig
PM>安裝,包裝ImageResizer.Plugins.DiskCache
PM>安裝,包ImageResizer。 Plugins.PrettyGifs

我仍然沒有看到的圖像,所以我調試,發現我需要尋找到resizer.debug.ashx文件。

只見盯着我的第一個錯誤有:

插件(ConfigurationError):指定的插件(ImageResizer.Plugins.Basic.MvcRoutingShimPlugin)的實例已經被添加。如果插件支持多個實例,則實現IMultiInstancePlugin。

resizer.debug.ashx文件上的粘貼斌:http://pastebin.com/iVT6QJS5

如何刪除這些重複?我需要先告訴Nuget先卸載嗎?我需要重新啓動還是在Nuget刪除和Nuget安裝之間重新啓動VS?

回答

1

刪除<add name="MvcRoutingShim" />,因爲它已默認加載 - 您的配置正在嘗試加載另一個實例。

雖然它看起來不像DiskCache和PrettyGifs的安裝包,但那些.dll無法找到