Free Support Forum - groupdocs.com

Javascript error


#1

Hello



I am testing GroupDocs.Annotation as a possible solution for our company. I started setting up an empty .aspx website that runs on my local computer with iis7. I am now getting an javascript error with the following error message:



Unhandled exception at line 6, column 99443 in http://localhost/GroupDocs.AnnotationsTest/document-viewer/GetScriptHandler?name=GroupdocsViewer.all.min.js



0x800a138f - JavaScript runtime error: Unable to get property ‘code’ of undefined or null reference



I can send a screen-shot and a zip-file with the solution.



I hope you can point me in the right direction.



Greetings

Robert Badi




#2
Hello, Robert!

Thank you for your interest in GroupDocs. We are sorry to see that you have such issue.

Your project and screenshot will be very useful, without them it is hard to understand what is wrong.

As, for know we can only assume that your server requires authorization or the document is not loaded (some unpredictable server-side error).

#3

Hello Ihor



The File attachment button does not work on your website to I am resorting to box.com. Here is the screenshot: https://app.box.com/s/o8wpf7mc3wj5xhnj6w1c



And here is the solution zipped: https://app.box.com/s/07ddj69anw2h43d5w7yg



Greetings

Robert Badi


#4
Thank you, Robert!


We will look at it and respond to you asap.

By the way, can you show a screenshot with the JavaScript error you get. If there are some errors in server logs, can you provide these too?

Also, it would be nice to know what environment you have.

#5

Hello Robert,

We downloaded and reviewed your project. Here is a list what we had found:

1. web.config

1.1. You had specified HTTP-handlers only in system.webServer -> handlers section. This means that web-site will be working correctly only on IIS Integrated Mode and IIE Express.
1.2. You need to specify in the system.webServer section in order to display elements of toolbar properly.

2. Index.aspx

2.1. FilePath(“App_Data/Quick_Start_Guide_To_Using_GroupDocs.pdf”) is specified incorrectly because “App_Data” folder is already initialized as a “root storage path” in the Global.asax (Groupdocs.Web.Annotation.WidgetFactory.Initialize(this.Context, @"~/App_Data");). Thus GroupDocs.Annotation tries to find a document in the “App_Data/App_Data” subfolder and cannot find. So you need to use simple .FilePath(“Quick_Start_Guide_To_Using_GroupDocs.pdf”)
2.2. ToHtmlString() is useless because this method is invoked automatically while rendering a page.
2.3. DIV “annotation-widget” has incorrect style = “width: 100%; height: 100%;”. You cannot simple set a DIV height to 100%. So when you use height: 100% it does not matter what is inside this DIV - it wouldn’t be 100% height, only width. You can find more info here: Make div 100% height of browser window In order to make viewport 100% tall you need to set “height: 100%” for all parent elements. Another and much easier way - to set height in absolute points, pixels, for example:


If you will have more questions please feel free to contact us.


#6

Dear Denis


Thank you for your reply. I followed your instructions but I still get one javascript error and not toolbar on the left side for annotations. I then compared my code with the demo for asp.net but am still at a loss. So I have recorded a screencast to show you. In it I first run the demo which works fine and then my solution and what happens when I run it. I also show the IIS settings.

Hope you have an idea what is wrong.

As point 1.1. I am running in integrated mode. If I add the handlers for classic mode also into web.config I get a server error.
As to point 2.2 ToHtmlString the demo has this and I can’t see that that makes any difference. Same goes for point 2.3, height is set to 100% in the demo, I changed that, but you might want to change the demo file if that is incorrect.

Here is the link to the screencast: http://screencast.com/t/ncCCSXdtRU

Here is the link to box with and updated solution if you need to see is also: https://app.box.com/s/pm32jmksqdgbfl0y3ko9

Best regards
Robert Badi


#7

Hello Robert,

We downloaded and reviewed your updated project. Especially we want to thank you for detailed video screencast.

But first we will answer to your questions from previous post.
1. “If I add the handlers for classic mode also into web.config I get a server error.” - yes, this is default behavior. By default IIS raises an error when web.config is configured for both Classic and Integrated modes. But this can be fixed by using statement in the “system.webServer” node.
2. “ToHtmlString” in ASPX page (code-front) it is simply useless. It makes sense when you place a server control on the code-behind.

And now about your error. We could not reproduce the exact error that you have experienced. But the situation when left toolbar panel is absent is very common. It usually occurs when there is a discrepancy (mismatch) between data stored in the database and data stored in the “file-sessions.json” file in the “App_Data” folder.

In the “file-sessions.json” that is present in your project there is a line
“Quick_Start_Guide_To_Using_GroupDocs.pdf”: 2
In the code-behind (Index.aspx.cs) there is a adding collaborator "testuser@groupdocs.com" procedure. It seems that due to data mismatch the user "testuser@groupdocs.com" has no permission to add annotation to the document so that’s why toolbar is absent.
In order to fix it open your database (you are using SQL Server). In the “Users” table you should find "testuser@groupdocs.com" - note his “Id”. Then go to the “Annotation” table. If it is not empty, for proper functioning there should be annotation record, where “AnnotationSession” should be “2” (from your “file-sessions.json”). “UserID” should be the same as "testuser@groupdocs.com" has.

If “Annotation” table is empty or this guide will not help, simply remove all records from all tables within “GroupdocsAnnotation” database and also remove “file-sessions.json” file. Also remove all cache (“temp” folder in the “App_Data”). Then restart web-site. GroupDocs.Annotation will recreate file and begins to work “from scratch”.

Another little remark. In your web.config remove “GetPdf2XmlHandler” HTTP-handler (it is obsolete and doesn’t exist in GroupDocs.Annotation 1.3.0.0) and add HTTP-handler


Hope this will help. If you will have more questions please feel free to contact us.


#8

Hello Denis


Thank you very much for your reply. I have followed your suggestions and deleted the content of all the database tables in the GroupdocsAnnotation database, the file-sessions.json file and the temp directory from App_Data and restarted the website.

However the left toolbar panel still does not appear and there still seems to be a data mismatch after the recreation process. Please see the following screenshot of the data tables for your reference after the recreation process (deleting contents of tables and restarting web-site):

http://screencast.com/t/KzqPLh2Tpohh

The contents of the file-sessions.json is the following:

{
“Quick_Start_Guide_To_Using_GroupDocs.pdf”: 10003
}

Best regards
Robert Badi

#9

Hello Robert,

Hmmm, your error is pretty strange. Can you please make the following:

1. Do you see a popup message “There is no such reviewer” when page (“Index.aspx”) loading is completed?

2. Can you check a request/response scanner while page is loading? You can use for example Firebug, or “Net” tab in Google Chrome, or Fiddler2, for example. If all is fine then all requests/responses should be successful. Please take a look at all SignalR-related requests like:

/document-annotation/GetScriptHandler?name=libs/jquery.signalR-1.1.2.min.js
/signalr1_1_2/hubs
http://localhost:61704/signalr1_1_2/hubs/negotiate?uid=
/signalr1_1_2/hubs/connect?transport=
/signalr1_1_2/hubs/send?transport=

Are all of them have HTTP 200 OK response? If all is fine you should get something like that: http://prntscr.com/42ig8f

Please come back to us with more details. Thanks.

#10

Hello again Denis


I don’t get a popup message when loading the index.aspx page.

I do however get this 404 message:
</tr>
<tr>
  <td>/signalr1_1_2/hubs</td>
  <td>HTTP</td>
  <td>GET</td>
  <td>404</td>
  <td>text/html</td>
  <td>199 B</td>
  <td>0.70 s</td>
  <td></td>
  <td>4555</td>
  <td>702</td>
  <td>0</td>
  <td>0</td>
  <td>0</td>
</tr>
URL Protocol Method Result Type Received Taken Initiator Wait‎‎ Start‎‎ Request‎‎ Response‎‎ Cache
This is the generated code line in Index.aspx:

I am going on holiday tomorrow for 2 weeks, so if we can't solve this in the next two hours I hope we can continue when I get back.

Greetings
Robert Badi

#11

Hello Robert,

Now the situation is much more clear. I can suggest that in the IIS you are using Virtual Catalog system for hosting this web-site, in opposite to the separate web-site. I think the error is because GroupDocs.Annotation forms the URL improperly. Take a look at full absolute URL that has 404 response - its domain name should differ from all other “200 OK” requests.
If this is true, just add to the HEAD section of your web-page a correct inclusion like this:


In that case you will overwrite the default incorrect inclusion by your own - correct.

Please try this and come back to us with results.


#12

Hello Denis


I did that and I now have a line in IE’s Network Console for the new included script with a result of HTTP 200. A bit further down I have the other automatically generated call by Groupdocs still with the 404 result. I also still get the javascript errors as before.

Best regards
Robert Badi

P.s. See the following screenshots: http://screencast.com/t/IgrFzQjP
and http://screencast.com/t/KtYAMG3r


#13

Hello again Robert,

SignalR is responsible for “annotation tools” left panel and that’s why it is not working for you - something blocks SignalR-related requests/responses. You stated at previous posts that you are using IIS. Maybe this is a reason. Now we need to narrow a set of all possible reasons that can lead to this error. So please try to launch your web-site not using IIS, but at this time use IIS Express or ASP.NET Development Server. It can be easily done if you use MS Visual Studio - go to the Properties - Web tab - Servers - > Use IIS Express. But, of course, don’t forget to remove the line that I suggested to you at previous post

because at this time domain name will be another.

Using that it will be able to define whether IIS is a reason of the error or not.


#14

Hi Denis,



I also got almost the same issue when I tried to run the demo using MVC5, right now, when I starts my project in IIS Express, I will get an error of “there is no such viewer” and no annotation toolbar. If I starts my project on my local IIS server, I’ll get the exact same javascript error. So could you give me a runnable demo of ASP.NET MVC5, maybe this could help me identify the mistake I made. Thanks!


#15

Hello Brian,

1. There is a package “GroupDocs.Annotation C# Demos” at our web-site. This is a demo solution which contains several projects, including WebForms and MVC. All these demos use SQL Server Compact as a storage, but it is very easy to switch this to the SQL Server.
2. GroupDocs.Annotation is compatible with all types of web-servers including IIS 6+, IIS Express and ASP.NET Development Server (Cassini). But when using IIS you need to perform additional actions like files/folders access etc. Also there are several specific problems like we discussed in previous posts. So my intention was to launch Robert’s project under IIS Express or Cassini in order to define a reason of error - is it Annotation-specific or IIS-specific.
3. “Uh-oh. There is no such reviewer” is not the same error as the previous that was described. When you see this message then SignalR is working; in opposite you will be not able to see this message. In fact this is not an error; this message says that current user is not registered as a reviewer. In order to fix this please clean your database and also remove “file-sessions.json” file. Also clean the browser cache and restart the web-site.

Hope this will help. If you will have more questions please feel free to contact us.


#16

Hi Denis,



Thanks for your help, I’ve already fixed my problem, it’s caused by the wrong test account I used in my controller.



PS: I’m not Robert, I just had the same problem with Robert so I followed this case.


#17
Hi Denis

I am now using IIS Express. The SignalR problem seems to be fixed so I commented out the code in the aspx file you recommened.

But I am still getting javascript error and nothing is being loaded.

Please see this screencast which I hope is helpful: http://screencast.com/t/NFiET0sQd8

Greetings
Robert Badi

#18

Hello Robert,

We are sorry to hear that you have such issue.

Thank you for such detailed screencast. We assume that you are using the same test project that you have pointed here: http://groupdocs.com/Community/forums/permalink/2004/1804/showthread.aspx#1804 (https://app.box.com/s/pm32jmksqdgbfl0y3ko9). We cannot reproduce now the exact error but we observe very similar client-side JS-related error. It occures only in Internet Explorer, in other browsers web-site works fine.

Here is a solution how to make it work in Internet Explorer:
1. Download the latest GroupDocs.Annotation for .NET version 1.4 from groupdocs.com and replace old 1.3 library onto this new 1.4.
2. Add a <meta http-equiv="X-UA-Compatible"content=“IE=edge” /> line to the section of a “Index.aspx” page.

If you will have more questions please feel free to contact us.


#19

Hello Denis


It seems that I have made some progress now. I changed the order of calls to js scripts and the WidgetFactory that now comes after jquery scripts.

Now however I always seem to have problems with the call to svc.AddCollaborator in the codebehind (I get an exception). It only works after I clean the solution but then I get an error “Uh-oh, something went wrong. There is no such reviewer.”. The net scanner in IE list the following call as pending, all others are 200 OK:

/signalr1_1_2/hubs/connect?transport=foreverFrame&connectionToken=qiNNjeQ0lx-g39u6c_e9uoLt9uFOrAcsOQKIJQMDQdd4PWNGxnWd1HLQhyBMjLlcfx4P9ebysDlbZ6XCd08EAb6yIzO-h3ugKhNW7S1yxkP6gzjxY1SdM_8G7YEQ5-pm3Tq8XGElmO6j5uFrnBy71hY4ZjDGXBbpRWSxTf0I6l067wGrdvCd8lnTeSzDtplH0&connectionData=%5B%7B%22name%22%3A%22annotationhub%22%7D%5D&uid=&tid=6&frameId=1
The [dbo].[Annotations] table is always empty even after deleting file-sessions.json file and temp folder in App_Data folder as you recommended previously.

Here below is a download link to my updated solution again and a link to a screencast demonstrating my problem. I hope you can take a look and see what is wrong now.

https://app.box.com/s/6ca4b87ith7lienldmm5

http://screencast.com/t/yPBoPj1l9D4Q

Best regards
Robert Badi

#20

Hello Robert,

We are sorry to hear that you have such issue. We have downloaded and reviewed your project.

In this current case the error is because you need to use default user “groupdocs@groupdocs.com”. Your database is empty, there are no users, so in order to allow anonymous users or guests make annotations you need to refer to the hardcoded "groupdocs@groupdocs.com". So in the code-behind of the “Index.aspx” page please change
svc.AddCollaborator(_filePath, "testuser@groupdocs.com", “FirstName”, “LastName”, null);
to the
svc.AddCollaborator(_filePath, "groupdocs@groupdocs.com", “FirstName”, “LastName”, null);
Of course, database and “file-sessions.json” file should be empty.

If you will have more questions please feel free to contact us.